[8569] Update staging publishing target indicator in UI#4824
[8569] Update staging publishing target indicator in UI#4824sumerjabri merged 4 commits intocraftercms:developfrom
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
WalkthroughReworked ItemDisplay rendering: added Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related issues
Possibly related PRs
Suggested reviewers
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
📝 Coding Plan
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@ui/app/src/components/ItemDisplay/ItemDisplay.tsx`:
- Around line 89-91: The current predicate in isStagedNewOrModified only checks
stateMap.staged and thus misses items where stateMap.submittedToStaging or
stateMap.submittedToLive are true; update the boolean expression used to compute
isStagedNewOrModified (in ItemDisplay.tsx, around the isStagedNewOrModified
constant) to treat submittedToStaging and submittedToLive as equivalent to
staged by OR-ing them with stateMap.staged before combining with the (new ||
modified) check so items ready for staging/live are correctly detected.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 6397dfee-085e-478d-ab4a-1c924bb9edfa
📒 Files selected for processing (1)
ui/app/src/components/ItemDisplay/ItemDisplay.tsx
| * Staging has priority over modified and null. Additionally, if an item is submitted to live, submitted to staging, or | ||
| * scheduled, it should not be shown as staged. | ||
| */ | ||
| function shouldItemShowAsStaged(item: ContentItem): boolean { |
There was a problem hiding this comment.
Type the argument so that you don't have to cast the various complying interfaces...
| function shouldItemShowAsStaged(item: ContentItem): boolean { | |
| function shouldItemShowAsStaged(item: { stateMap?: Record<'staged' | 'new' | ..., boolean> }): boolean { |
There was a problem hiding this comment.
since LightItem doesn't have stateMap, it still complains that LightItem doesn't have an optional param stateMap so I end up needing the cast.
I set item: ContentItem | LightItem and validated stateMap prop inside the util. That way I don't have to do any casting. What do you think?
* Update rimraf, @types/node * Update mui/* * Update @types/react, @types/jquery, webpack * Update marked, react-router, react-window, video.js * Update @typescript-eslint/eslint-plugin, @typescript-eslint/parser, @vitejs/plugin-react, @swc/core, @swc/cli * Update @atlaskit/pragmatic-drag-and-drop, monaco-graphql, @eslint/compat, @eslint/eslintrc, babel-plugin-formatjs, eslint-plugin-react-refresh, css-loader, @eslint/eslintrc, @rollup/plugin-commonjs, @prettier/plugin-xml * Update @eslint/js, eslint * Update @prettier/plugin-xml, graphql, jotai, eslint-plugin-formatjs, globals, rollup, preact * Update @formatjs/cli * Update fast-xml-parser * Yarn dedupe * Remove deprecated eslintConfig from uppy/package.json, and removed unstable_config_lookup_from_file flag from root package.json * [8579] Fix guest build (#4828) * [7418] FE2 - Label control (#4669) * [7418] Label control * [7418] Standardize fallback handling * [7418] Add dompurify sanitization when setting inner html * [7418] Remove defaultValue * [7418] use getPropertyValue in Label control * [7418] Remove renderAsHTML property from label descriptor, use minimal setup of tinymce in text field * [7418] Add RTE wrapper for TypeBuilder, update label control to use rte for text field, with `craftercms-label-control`. Update RichTextEditor control to support defaultInitOptions prop * [7418] Add dompurify * [7418] Add dompurify * [7418] fix package.json format * [7418] Add dompurify * [7418] FE2- Checkbox control (#4658) * [7418] Checkbox readonly and defaultValue updates * [7418] Improve Checkbox readonly value extraction * [7418] Remove retrieving logic from checkbox control, update retrieveFieldValue to omit empty strings as defaultValue * [7418] Update checkbox validator, fix retrieveFieldValue fieldValue calculation * [7418] Update booleanFieldExtractor to return false if nullish value * [7418] Forcehttps control (#4820) * [8555] Handle request publish activity as package (#4830) * [8216] Update dropTargetsLookup in parseLegacyFormDefinition to use new DataSource type instead of legacy. (#4806) * [8216] Update dropTargetsLookup in parseLegacyFormDefinition to use new DataSource type instead of legacy * [8216] Fix NodeSelector create component * [8216] Remove unnecessary cast * [8444] Approver user listed in Dashboard is always the user that requested the publish (#4831) * [8444] Approver user listed in Dashboard is always the user that requested the publish * [8444] Fix approver for requests in RecentlyPublishedDashlet * [8451] Studio UI doesn’t correctly display API responses when Git global configs are unset (#4797) * Fix error handling in EditTypeView to ensure proper message display, add type to error * [7418] FE2 -CheckboxGroup control (#4653) * Update field validation logic * Enhance listDirection parsing * Guard placeholder items during filtering * Validate window in useWindowWidth * Parse minSize safely * Update validator to consider empty (or non-array) values * Simplify validateFieldValue logic * Remove unused/duplicate util * Remove unused import * Move utils to bottom of component * Update CheckboxGroup to render a max of 2 columns, and remove rendering of 3 columns logic * Move checkboxGroup validator to fn * Add skeleton for loading state, use props utils * Fix property for selectAll * Update indeterminate and checked conditions of selectAll checkbox to consider filtering * Update checkboxGroupValidator currentValue type * Return undefined for finalOptions nullish options * [8592] Send field to serializers for datasources in TB2 (#4836) * Fix datasources form in TB2 * Retrieve/pass field to serializer * [8547] Workflow states options should only display valid options (#4808) * Workflow states options should only display valid options * Add error handling on fetchPublishingTargets * [7511] Removing datasource without disconnecting it from properties corrupts form (#4838) * [7511] cleanupStaleDatasourceValues * [7511] Cleanup datasource values from xml * [7511] Remove comment * [7511] Update selector in EditTypeView to use :scope for value element * [7511] consider parse errors --------- Co-authored-by: git_repo_user <evalgit@example.com> * [8569] Update staging publishing target indicator in UI (#4824) * [8569] Update staging publishing target indicator in UI * [8569] Update comment * [8569] Added util `shouldItemShowAsStaged` * [7418] Update shouldItemShowAsStaged to avoid casting item * [8407] set 'includeChildren' to true if mainItems are all folders (#4833) * [8407] Add 'include children' option to PublishDialog. Prevent publishing only folders * [8407] Avoid duplicate items * [8407] Empty childrenItems when reverting dependencies changes * [8407] Fix validation on Array.every() on an empty array returns true * [8407] calculatePackage subscription cleanup * [8407] set 'includeChildren' to true if mainItems are all folders * [8407] Set initial state of 'includeChildren' based on mainItems being folders --------- Co-authored-by: git_repo_user <evalgit@example.com> * [7418] Update tokenized prop name (#4686) * [7418] Update tokenized prop name * [7418] Create commonDescriptors to reuse --------- Co-authored-by: git_repo_user <evalgit@example.com> * [8599] Update the UI to use the new available languages API (#4840) * [8599] Update the UI to use the new available languages API * Return empty array if undefined * CHANGELOG update --------- Co-authored-by: git_repo_user <evalgit@example.com> * [8595] Update the UI to consume the new create site API (#4842) * [8595] Update the UI to consume the new create site API * Update token authentication form validation * Update CreateSiteMeta siteName type to name * Refactor authentication handling to remove username requirement for token authentication --------- Co-authored-by: git_repo_user <evalgit@example.com> * [8598] Update the UI to consume the new dependencies APIs (#4841) * [8598] Update the UI to consume the new dependencies APIs * [8598] Update changelog * Fix changelog * Refactor error handling in BrokenReferencesDialogContainer to use extractErrorPayload * Handle error on fetchContentItem * Add comment stating why ContentItems are needed * Add loading state to edit button in RenameItemView * Guard against undefined lightItems, use extractErrorPayload --------- Co-authored-by: git_repo_user <evalgit@example.com> * yarn.lock update after merge, yarn dedupe --------- Co-authored-by: git_repo_user <evalgit@example.com>
craftercms/craftercms#8569
Summary by CodeRabbit