From 96055b747bf131c18c392dc6d76f067bcb741d96 Mon Sep 17 00:00:00 2001 From: George Drak Date: Wed, 8 Sep 2021 15:41:59 +0500 Subject: [PATCH] feat(display): move ShouldRender and ShouldRenderNext to block instead of descriptor --- .../Blocks/AntCutBlockDescriptor.cs | 7 ------- src/Sitko.Blockly.AntDesign/Display/AntBlocksList.razor | 4 ++-- src/Sitko.Blockly/BlockDescriptor.cs | 3 --- src/Sitko.Blockly/Blocks/CutBlock.cs | 8 ++++++++ src/Sitko.Blockly/ContentBlock.cs | 5 +++++ 5 files changed, 15 insertions(+), 12 deletions(-) diff --git a/src/Sitko.Blockly.AntDesign/Blocks/AntCutBlockDescriptor.cs b/src/Sitko.Blockly.AntDesign/Blocks/AntCutBlockDescriptor.cs index 3df8258..a3365ee 100644 --- a/src/Sitko.Blockly.AntDesign/Blocks/AntCutBlockDescriptor.cs +++ b/src/Sitko.Blockly.AntDesign/Blocks/AntCutBlockDescriptor.cs @@ -3,7 +3,6 @@ using Sitko.Blockly.AntDesignComponents.Forms.Blocks; using Sitko.Blockly.Blazor; using Sitko.Blockly.Blocks; -using Sitko.Blockly.Display; using Sitko.Core.App.Localization; namespace Sitko.Blockly.AntDesignComponents.Blocks @@ -15,11 +14,5 @@ public AntCutBlockDescriptor(ILocalizationProvider localizationProvide } public override RenderFragment Icon => builder => builder.AddIcon("cut"); - - public bool ShouldRender(BlockListContext context, ContentBlock block) => - context.Mode == BlocksListMode.Preview; - - public bool ShouldRenderNext(BlockListContext context, ContentBlock block) => - context.Mode == BlocksListMode.Full; } } diff --git a/src/Sitko.Blockly.AntDesign/Display/AntBlocksList.razor b/src/Sitko.Blockly.AntDesign/Display/AntBlocksList.razor index 207f6ed..fbd4676 100644 --- a/src/Sitko.Blockly.AntDesign/Display/AntBlocksList.razor +++ b/src/Sitko.Blockly.AntDesign/Display/AntBlocksList.razor @@ -3,14 +3,14 @@ @foreach (var block in Blocks) { var blockDescriptor = Blockly.GetBlockDescriptor(block.GetType()); - if (blockDescriptor.ShouldRender(Context!, block)) + if (block.ShouldRender(Options)) { var className = $"blockly blockly-{block.GetType().Name.ToLowerInvariant()} {blockDescriptor.DisplayComponentCssClass}";
@(RenderBlock(blockDescriptor, block))
} - if (!blockDescriptor.ShouldRenderNext(Context!, block)) + if (!block.ShouldRenderNext(Options)) { break; } diff --git a/src/Sitko.Blockly/BlockDescriptor.cs b/src/Sitko.Blockly/BlockDescriptor.cs index 9d5caba..ecabe07 100644 --- a/src/Sitko.Blockly/BlockDescriptor.cs +++ b/src/Sitko.Blockly/BlockDescriptor.cs @@ -1,5 +1,4 @@ using System; -using Sitko.Blockly.Display; using Sitko.Core.App.Localization; namespace Sitko.Blockly @@ -9,8 +8,6 @@ public interface IBlockDescriptor string Title { get; } Type Type { get; } string Key { get; } - bool ShouldRender(BlockListContext context, ContentBlock block) => true; - bool ShouldRenderNext(BlockListContext context, ContentBlock block) => true; } // ReSharper disable once UnusedTypeParameter diff --git a/src/Sitko.Blockly/Blocks/CutBlock.cs b/src/Sitko.Blockly/Blocks/CutBlock.cs index 7e0b751..b347f54 100644 --- a/src/Sitko.Blockly/Blocks/CutBlock.cs +++ b/src/Sitko.Blockly/Blocks/CutBlock.cs @@ -2,6 +2,8 @@ namespace Sitko.Blockly.Blocks { + using Display; + [ContentBlockMetadata(2, 1)] public record CutBlock : ContentBlock @@ -9,6 +11,12 @@ public record CutBlock : ContentBlock public override string ToString() => ""; public string ButtonText { get; set; } = "Read more..."; + + public override bool ShouldRender(BlocklyListOptions listOptions) => + listOptions.Mode == BlocksListMode.Preview; + + public override bool ShouldRenderNext(BlocklyListOptions options) => + options.Mode == BlocksListMode.Full; } public record CutBlockDescriptor : BlockDescriptor diff --git a/src/Sitko.Blockly/ContentBlock.cs b/src/Sitko.Blockly/ContentBlock.cs index 7b666ad..2e2e13a 100644 --- a/src/Sitko.Blockly/ContentBlock.cs +++ b/src/Sitko.Blockly/ContentBlock.cs @@ -3,6 +3,8 @@ namespace Sitko.Blockly { + using Display; + public abstract record ContentBlock : IOrdered { public Guid Id { get; set; } = Guid.NewGuid(); @@ -10,5 +12,8 @@ public abstract record ContentBlock : IOrdered public bool Enabled { get; set; } = true; public override string ToString() => GetType().Name; + + public virtual bool ShouldRender(BlocklyListOptions listOptions) => true; + public virtual bool ShouldRenderNext(BlocklyListOptions listOptions) => true; } }