Last active
September 3, 2025 13:14
-
-
Save adnanzameer/8e40abb3278bd876c053952fb13c502a to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| public class PreviewDraftContentAreaRenderer(IContextModeResolver contextModeResolver, IHttpContextAccessor httpContextAccessor) : ContentAreaRenderer | |
| { | |
| // Treat Preview like Edit so renderer doesn't skip edit-time behavior | |
| private bool IsDraftView | |
| { | |
| get | |
| { | |
| var ctx = httpContextAccessor.HttpContext; | |
| var hasParam = ctx?.Request?.Query.TryGetValue("showdrafts", out var val) == true | |
| && val.ToString().Equals("true", StringComparison.OrdinalIgnoreCase); | |
| return hasParam | |
| || contextModeResolver.CurrentMode == ContextMode.Edit | |
| || contextModeResolver.CurrentMode == ContextMode.Preview; | |
| } | |
| } | |
| protected override bool IsInEditMode() | |
| { | |
| return IsDraftView; | |
| } | |
| public override void Render(IHtmlHelper htmlHelper, ContentArea contentArea) | |
| { | |
| if (contentArea == null || contentArea.IsEmpty) | |
| return; | |
| var items = IsDraftView | |
| ? contentArea.Fragments.OfType<ContentFragment>().Select(f => new ContentAreaItem(f)) | |
| : contentArea.Fragments.GetFilteredFragments(PrincipalInfo.CurrentPrincipal) | |
| .OfType<ContentFragment>() | |
| .Select(f => new ContentAreaItem(f)); | |
| RenderContentAreaItems(htmlHelper, items); | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment