chore: remove journey provider context wrapper from journey cards#8586
Conversation
|
I see you added the "on stage" label, I'll get this merged to the stage branch! |
…-wrapping-for-individual-journey
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
WalkthroughRemoved per-item JourneyProvider wrappers; components now accept explicit Changes
Sequence Diagram(s)sequenceDiagram
participant User as User
participant JourneyCard as JourneyCard
participant DefaultMenu as DefaultMenu
participant DuplicateItem as DuplicateJourneyMenuItem
participant CopyDialog as CopyToTeamDialog
participant API as GraphQL_API
User->>JourneyCard: open card menu
JourneyCard->>DefaultMenu: render menu (pass journey prop)
User->>DefaultMenu: click "Duplicate" / "Copy"
DefaultMenu->>DuplicateItem: invoke duplicate action (journey forwarded)
DuplicateItem->>CopyDialog: open CopyToTeamDialog (journey prop)
CopyDialog->>API: duplicateJourney mutation (uses journey.id)
API-->>CopyDialog: mutation result
CopyDialog-->>User: show success / trigger navigation
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes Possibly related PRs
Suggested reviewers
🚥 Pre-merge checks | ✅ 5 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
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 |
|
View your CI Pipeline Execution ↗ for commit 9391ad9
☁️ Nx Cloud last updated this comment at |
|
The latest updates on your projects.
|
There was a problem hiding this comment.
Actionable comments posted: 0
🧹 Nitpick comments (7)
apps/journeys-admin/src/components/JourneyList/ArchivedJourneyList/ArchivedJourneyList.tsx (1)
151-155: Redundantkeyprop onJourneyCard.The
keyis already specified on the parentGridcomponent (line 148). ThekeyonJourneyCardis unnecessary since React only needs the key on the outermost element in the map iteration.Suggested fix
- <JourneyCard - key={journey.id} - journey={journey} - refetch={refetch} - /> + <JourneyCard journey={journey} refetch={refetch} />apps/journeys-admin/src/components/TemplateList/TrashedTemplateList/TrashedTemplateList.tsx (1)
153-157: Redundantkeyprop onJourneyCard.The
keyis already specified on the parentGridcomponent (line 150). Remove the duplicate key fromJourneyCard.Suggested fix
- <JourneyCard - key={journey.id} - journey={journey} - refetch={refetch} - /> + <JourneyCard journey={journey} refetch={refetch} />apps/journeys-admin/src/components/JourneyList/TrashedJourneyList/TrashedJourneyList.tsx (1)
163-167: Redundantkeyprop onJourneyCard.The
keyis already specified on the parentGridcomponent (line 160). Remove the duplicate key fromJourneyCard.Suggested fix
- <JourneyCard - key={journey.id} - journey={journey} - refetch={refetch} - /> + <JourneyCard journey={journey} refetch={refetch} />apps/journeys-admin/src/components/TemplateList/ActiveTemplateList/ActiveTemplateList.tsx (1)
139-143: Redundantkeyprop onJourneyCard.The
keyis already specified on the parentGridcomponent (line 136). Remove the duplicate key fromJourneyCard.Suggested fix
- <JourneyCard - key={journey.id} - journey={journey} - refetch={refetch} - /> + <JourneyCard journey={journey} refetch={refetch} />apps/journeys-admin/src/components/JourneyList/ActiveJourneyList/ActivePriorityList/ActivePriorityList.tsx (1)
88-93: LGTM with minor nit: redundantkeyprop.The variant handling is correct—casting
key as JourneyCardVariantworks sinceallActiveJourneysis keyed byJourneyCardVariantenum values. The direct rendering withoutJourneyProvidersimplifies the component hierarchy.Minor: The
keyonJourneyCard(line 89) is redundant sinceGrid(line 87) already haskey={journey.id}.Optional: Remove redundant key
<JourneyCard - key={journey.id} journey={journey} refetch={refetch} variant={key as JourneyCardVariant} />apps/journeys-admin/src/components/JourneyList/JourneyListContent/JourneyListContent.tsx (1)
586-590: Remove duplicatekeyprop.The
keyis already set on the parentGridelement (line 574). ThekeyonJourneyCardis redundant.Suggested fix
- <JourneyCard - key={journey.id} - journey={journey} - refetch={refetch} - /> + <JourneyCard journey={journey} refetch={refetch} />apps/journeys-admin/src/components/TemplateList/ArchivedTemplateList/ArchivedTemplateList.tsx (1)
140-144: Remove duplicatekeyprop.Same issue as
JourneyListContent.tsx— thekeyis already on the parentGrid(line 137).Suggested fix
- <JourneyCard - key={journey.id} - journey={journey} - refetch={refetch} - /> + <JourneyCard journey={journey} refetch={refetch} />
📜 Review details
Configuration used: Repository UI
Review profile: CHILL
Plan: Pro
Disabled knowledge base sources:
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (7)
apps/journeys-admin/src/components/JourneyList/ActiveJourneyList/ActivePriorityList/ActivePriorityList.tsxapps/journeys-admin/src/components/JourneyList/ArchivedJourneyList/ArchivedJourneyList.tsxapps/journeys-admin/src/components/JourneyList/JourneyListContent/JourneyListContent.tsxapps/journeys-admin/src/components/JourneyList/TrashedJourneyList/TrashedJourneyList.tsxapps/journeys-admin/src/components/TemplateList/ActiveTemplateList/ActiveTemplateList.tsxapps/journeys-admin/src/components/TemplateList/ArchivedTemplateList/ArchivedTemplateList.tsxapps/journeys-admin/src/components/TemplateList/TrashedTemplateList/TrashedTemplateList.tsx
🧰 Additional context used
📓 Path-based instructions (3)
**/*.{ts,tsx,js,jsx}
📄 CodeRabbit inference engine (.cursor/rules/base.mdc)
**/*.{ts,tsx,js,jsx}: Use early returns whenever possible to make the code more readable.
Use descriptive variable and function/const names.
Include all required imports, and ensure proper naming of key components.
Files:
apps/journeys-admin/src/components/TemplateList/ArchivedTemplateList/ArchivedTemplateList.tsxapps/journeys-admin/src/components/TemplateList/TrashedTemplateList/TrashedTemplateList.tsxapps/journeys-admin/src/components/JourneyList/ActiveJourneyList/ActivePriorityList/ActivePriorityList.tsxapps/journeys-admin/src/components/JourneyList/TrashedJourneyList/TrashedJourneyList.tsxapps/journeys-admin/src/components/JourneyList/JourneyListContent/JourneyListContent.tsxapps/journeys-admin/src/components/JourneyList/ArchivedJourneyList/ArchivedJourneyList.tsxapps/journeys-admin/src/components/TemplateList/ActiveTemplateList/ActiveTemplateList.tsx
**/*.{ts,tsx}
📄 CodeRabbit inference engine (.cursor/rules/base.mdc)
Define a type if possible.
Files:
apps/journeys-admin/src/components/TemplateList/ArchivedTemplateList/ArchivedTemplateList.tsxapps/journeys-admin/src/components/TemplateList/TrashedTemplateList/TrashedTemplateList.tsxapps/journeys-admin/src/components/JourneyList/ActiveJourneyList/ActivePriorityList/ActivePriorityList.tsxapps/journeys-admin/src/components/JourneyList/TrashedJourneyList/TrashedJourneyList.tsxapps/journeys-admin/src/components/JourneyList/JourneyListContent/JourneyListContent.tsxapps/journeys-admin/src/components/JourneyList/ArchivedJourneyList/ArchivedJourneyList.tsxapps/journeys-admin/src/components/TemplateList/ActiveTemplateList/ActiveTemplateList.tsx
apps/**/*.{js,jsx,ts,tsx}
📄 CodeRabbit inference engine (.cursor/rules/apps.mdc)
apps/**/*.{js,jsx,ts,tsx}: Always use MUI over HTML elements; avoid using CSS or tags.
Use descriptive variable and function/const names. Also, event functions should be named with a “handle” prefix, like “handleClick” for onClick and “handleKeyDown” for onKeyDown.
Implement accessibility features on elements. For example, a tag should have a tabindex=“0”, aria-label, on:click, and on:keydown, and similar attributes.
Files:
apps/journeys-admin/src/components/TemplateList/ArchivedTemplateList/ArchivedTemplateList.tsxapps/journeys-admin/src/components/TemplateList/TrashedTemplateList/TrashedTemplateList.tsxapps/journeys-admin/src/components/JourneyList/ActiveJourneyList/ActivePriorityList/ActivePriorityList.tsxapps/journeys-admin/src/components/JourneyList/TrashedJourneyList/TrashedJourneyList.tsxapps/journeys-admin/src/components/JourneyList/JourneyListContent/JourneyListContent.tsxapps/journeys-admin/src/components/JourneyList/ArchivedJourneyList/ArchivedJourneyList.tsxapps/journeys-admin/src/components/TemplateList/ActiveTemplateList/ActiveTemplateList.tsx
🧠 Learnings (7)
📚 Learning: 2025-12-19T04:58:24.460Z
Learnt from: CR
Repo: JesusFilm/core PR: 0
File: apps/watch/AGENTS.md:0-0
Timestamp: 2025-12-19T04:58:24.460Z
Learning: Applies to apps/watch/src/**/*.{ts,tsx} : Preserve existing contracts in components like `VideoBlock` which depend on the full provider stack, video.js, and mux metadata so autoplay, subtitles, and analytics remain intact.
Applied to files:
apps/journeys-admin/src/components/TemplateList/ArchivedTemplateList/ArchivedTemplateList.tsxapps/journeys-admin/src/components/JourneyList/ActiveJourneyList/ActivePriorityList/ActivePriorityList.tsxapps/journeys-admin/src/components/JourneyList/JourneyListContent/JourneyListContent.tsxapps/journeys-admin/src/components/JourneyList/ArchivedJourneyList/ArchivedJourneyList.tsxapps/journeys-admin/src/components/TemplateList/ActiveTemplateList/ActiveTemplateList.tsx
📚 Learning: 2025-11-11T23:22:02.196Z
Learnt from: mikeallisonJS
Repo: JesusFilm/core PR: 8156
File: apis/api-journeys-modern/src/lib/google/googleAuth.ts:0-0
Timestamp: 2025-11-11T23:22:02.196Z
Learning: In apis/api-journeys-modern, use the validated `env` object from `../../env` instead of accessing `process.env` directly for environment variables that are defined in env.ts (e.g., GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, INTEGRATION_ACCESS_KEY_ENCRYPTION_SECRET). This eliminates the need for runtime validation checks since Zod validates them at application startup.
Applied to files:
apps/journeys-admin/src/components/JourneyList/ActiveJourneyList/ActivePriorityList/ActivePriorityList.tsxapps/journeys-admin/src/components/JourneyList/JourneyListContent/JourneyListContent.tsx
📚 Learning: 2025-04-29T04:56:45.588Z
Learnt from: Ur-imazing
Repo: JesusFilm/core PR: 6382
File: apps/journeys-admin/src/components/JourneyList/ArchivedJourneyList/ArchivedJourneyList.spec.tsx:149-150
Timestamp: 2025-04-29T04:56:45.588Z
Learning: The trailing "00" characters in journey card text content assertions are intentional in the JourneyList component tests.
Applied to files:
apps/journeys-admin/src/components/JourneyList/JourneyListContent/JourneyListContent.tsx
📚 Learning: 2025-09-16T04:10:28.624Z
Learnt from: jaco-brink
Repo: JesusFilm/core PR: 7679
File: apis/api-gateway/schema.graphql:0-0
Timestamp: 2025-09-16T04:10:28.624Z
Learning: In PR #7679 (showAssistant field), the showAssistant field was intentionally excluded from JourneyUpdateInput because it will be controlled through direct database operations rather than through GraphQL mutations, keeping it out of the public API surface while still being queryable.
Applied to files:
apps/journeys-admin/src/components/JourneyList/JourneyListContent/JourneyListContent.tsx
📚 Learning: 2025-12-19T04:58:24.460Z
Learnt from: CR
Repo: JesusFilm/core PR: 0
File: apps/watch/AGENTS.md:0-0
Timestamp: 2025-12-19T04:58:24.460Z
Learning: Applies to apps/watch/src/**/*.tsx : Use optional props with sensible defaults, include className prop for extensibility, and use ReactNode for children and content slots. Name interfaces with component name prefix (e.g., `ComponentNameProps`).
Applied to files:
apps/journeys-admin/src/components/JourneyList/JourneyListContent/JourneyListContent.tsx
📚 Learning: 2025-09-08T22:56:21.606Z
Learnt from: mikeallisonJS
Repo: JesusFilm/core PR: 7498
File: apis/api-journeys-modern/src/schema/action/emailAction/blockUpdateEmailAction.mutation.ts:26-36
Timestamp: 2025-09-08T22:56:21.606Z
Learning: In the action mutations migration (PR #7498), the `journeyId` parameter is intentionally kept in blockUpdate*Action mutations even when unused in the resolver, to maintain API compatibility during the migration from the old "api-journeys" endpoint to the modern "api-journeys-modern" endpoint.
Applied to files:
apps/journeys-admin/src/components/JourneyList/JourneyListContent/JourneyListContent.tsx
📚 Learning: 2025-12-19T04:58:24.460Z
Learnt from: CR
Repo: JesusFilm/core PR: 0
File: apps/watch/AGENTS.md:0-0
Timestamp: 2025-12-19T04:58:24.460Z
Learning: Applies to apps/watch/src/**/*.{ts,tsx} : Do not introduce new MUI usage; migrate existing MUI to shadcn/Tailwind. New shadcn work should coexist with core shells/wrappers still using MUI until explicit migration tasks retire them.
Applied to files:
apps/journeys-admin/src/components/TemplateList/ActiveTemplateList/ActiveTemplateList.tsx
🧬 Code graph analysis (5)
apps/journeys-admin/src/components/TemplateList/ArchivedTemplateList/ArchivedTemplateList.tsx (1)
apps/journeys-admin/src/components/JourneyList/JourneyCard/JourneyCard.tsx (1)
JourneyCard(53-383)
apps/journeys-admin/src/components/TemplateList/TrashedTemplateList/TrashedTemplateList.tsx (1)
apps/journeys-admin/src/components/JourneyList/JourneyCard/JourneyCard.tsx (1)
JourneyCard(53-383)
apps/journeys-admin/src/components/JourneyList/ActiveJourneyList/ActivePriorityList/ActivePriorityList.tsx (2)
apps/journeys-admin/src/components/JourneyList/JourneyCard/JourneyCard.tsx (1)
JourneyCard(53-383)apps/journeys-admin/src/components/JourneyList/ActiveJourneyList/ActivePriorityList/ActiveJourneyListData.ts (1)
journey(93-97)
apps/journeys-admin/src/components/JourneyList/JourneyListContent/JourneyListContent.tsx (1)
apps/journeys-admin/src/components/JourneyList/JourneyCard/JourneyCard.tsx (1)
JourneyCard(53-383)
apps/journeys-admin/src/components/TemplateList/ActiveTemplateList/ActiveTemplateList.tsx (1)
apps/journeys-admin/src/components/JourneyList/JourneyCard/JourneyCard.tsx (1)
JourneyCard(53-383)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: Deploy Preview (journeys-admin, 8586/merge, pull_request, 22)
🔇 Additional comments (1)
apps/journeys-admin/src/components/JourneyList/JourneyListContent/JourneyListContent.tsx (1)
19-22: LGTM!Import cleanup is appropriate — removed unused
JourneyProvider,JourneyFields, and narrowed to only the required exports.
…-wrapping-for-individual-journey
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Fix all issues with AI agents
In
`@apps/journeys-admin/src/components/JourneyList/ArchivedJourneyList/ArchivedJourneyList.tsx`:
- Around line 170-174: The JourneyCard in ArchivedJourneyList is given a
redundant key prop; remove the duplicate key={journey.id} from the JourneyCard
component (leave the key on the parent Grid item) so only the Grid retains the
unique key, updating the JSX where JourneyCard is rendered inside
ArchivedJourneyList/Grid.
…-wrapping-for-individual-journey
…or-individual-journey' of https://github.com/JesusFilm/core into urimchae/nes-316-substitute-journey-provider-wrapping-for-individual-journey
This comment has been minimized.
This comment has been minimized.
…-wrapping-for-individual-journey
There was a problem hiding this comment.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
libs/journeys/ui/src/components/TemplateView/CreateJourneyButton/CreateJourneyButton.tsx (1)
313-313: Boolean null-check is always truthy.
openTeamDialogis a boolean state initialized withuseState(false). The conditionopenTeamDialog != nullis alwaystruefor booleans. This should simply beopenTeamDialogto conditionally render the dialog.Proposed fix
- {openTeamDialog != null && ( + {openTeamDialog && (
🤖 Fix all issues with AI agents
In
`@libs/journeys/ui/src/components/TemplateView/CreateJourneyButton/CreateJourneyButton.tsx`:
- Line 334: Remove the redundant double-cast on the journey prop: instead of
passing journey={journeyData as unknown as JourneyFields} pass
journey={journeyData} because journeyData is already typed as JourneyFields |
undefined and CopyToTeamDialog accepts an optional journey?: JourneyFields;
update the JSX where CopyToTeamDialog (or the component receiving the prop) is
called so it uses journey={journeyData} and remove the unnecessary casts to
improve clarity.
🧹 Nitpick comments (1)
apps/journeys-admin/src/components/JourneyList/JourneyCard/JourneyCardMenu/DuplicateJourneyMenuItem/DuplicateJourneyMenuItem.spec.tsx (1)
418-445: Fail fast when no primary dialog action is found.If none of the fallback paths locate a clickable action, the test silently proceeds and later times out. Consider throwing an explicit error to make failures clearer.
♻️ Suggested tweak
} else { // Last resort: click the last button that's not the close button const actionButtons = dialogButtons.filter( (btn) => !btn.getAttribute('data-testid')?.includes('close') ) if (actionButtons.length > 0) { fireEvent.click(actionButtons[actionButtons.length - 1]) + } else { + throw new Error( + 'Unable to locate a primary action button in CopyToTeamDialog' + ) } } }
…-wrapping-for-individual-journey
…-wrapping-for-individual-journey
…-wrapping-for-individual-journey
There was a problem hiding this comment.
🤖 Fix all issues with AI agents
Verify each finding against the current code and only fix it if needed.
In
`@apps/journeys-admin/src/components/JourneyList/JourneyCard/JourneyCardMenu/DefaultMenu/DefaultMenu.tsx`:
- Line 30: The import JourneyFields is only used for an unsafe cast at the
TemplateActionButton usage around line 269 in DefaultMenu.tsx; update the
TemplateActionButton typing instead of relying on the cast and remove the
JourneyFields import if it becomes unused. Specifically, fix the type
incompatibility at the TemplateActionButton prop (or local variable) so it
accepts the correct shape, replace the unsafe cast currently referencing
JourneyFields with the proper typed interface, and then delete the JourneyFields
import from DefaultMenu.tsx if rg confirms no other references.
In
`@apps/journeys-admin/src/components/Team/CopyToTeamMenuItem/CopyToTeamMenuItem.tsx`:
- Line 232: The prop `journey={journeyData as unknown as JourneyFields}`
bypasses type safety; instead narrow the type so CopyToTeamDialog only receives
what it needs: create a small interface (e.g. JourneyPreview) containing
template and fromTemplateId and type the `journey` prop accordingly, or change
the prop type to a union `journey?: JourneyFields | GetAdminJourneys_journeys`
so TS can verify compatibility; alternatively, if you must cast, use a single
`as JourneyFields` only after confirming the shapes match. Ensure you update the
`CopyToTeamDialog` prop type or the `journey` prop site in CopyToTeamMenuItem to
reference the new JourneyPreview or union type (not `unknown as JourneyFields`).
🧹 Nitpick comments (2)
🤖 Fix all nitpicks with AI agents
Verify each finding against the current code and only fix it if needed. In `@apps/journeys-admin/src/components/JourneyList/JourneyCard/JourneyCardMenu/DefaultMenu/DefaultMenu.tsx`: - Line 30: The import JourneyFields is only used for an unsafe cast at the TemplateActionButton usage around line 269 in DefaultMenu.tsx; update the TemplateActionButton typing instead of relying on the cast and remove the JourneyFields import if it becomes unused. Specifically, fix the type incompatibility at the TemplateActionButton prop (or local variable) so it accepts the correct shape, replace the unsafe cast currently referencing JourneyFields with the proper typed interface, and then delete the JourneyFields import from DefaultMenu.tsx if rg confirms no other references. In `@apps/journeys-admin/src/components/Team/CopyToTeamMenuItem/CopyToTeamMenuItem.tsx`: - Line 232: The prop `journey={journeyData as unknown as JourneyFields}` bypasses type safety; instead narrow the type so CopyToTeamDialog only receives what it needs: create a small interface (e.g. JourneyPreview) containing template and fromTemplateId and type the `journey` prop accordingly, or change the prop type to a union `journey?: JourneyFields | GetAdminJourneys_journeys` so TS can verify compatibility; alternatively, if you must cast, use a single `as JourneyFields` only after confirming the shapes match. Ensure you update the `CopyToTeamDialog` prop type or the `journey` prop site in CopyToTeamMenuItem to reference the new JourneyPreview or union type (not `unknown as JourneyFields`).apps/journeys-admin/src/components/JourneyList/JourneyCard/JourneyCardMenu/DefaultMenu/DefaultMenu.tsx (1)
30-30:JourneyFieldsimport is only used for the unsafe cast on line 269.If the
TemplateActionButtontype incompatibility is resolved (per the existing review comment), this import may no longer be needed. Keep it in sync with whatever fix is applied.#!/bin/bash # Check if JourneyFields is used anywhere else in this file besides the cast rg -n "JourneyFields" apps/journeys-admin/src/components/JourneyList/JourneyCard/JourneyCardMenu/DefaultMenu/DefaultMenu.tsx🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@apps/journeys-admin/src/components/JourneyList/JourneyCard/JourneyCardMenu/DefaultMenu/DefaultMenu.tsx` at line 30, The import JourneyFields is only used for an unsafe cast at the TemplateActionButton usage around line 269 in DefaultMenu.tsx; update the TemplateActionButton typing instead of relying on the cast and remove the JourneyFields import if it becomes unused. Specifically, fix the type incompatibility at the TemplateActionButton prop (or local variable) so it accepts the correct shape, replace the unsafe cast currently referencing JourneyFields with the proper typed interface, and then delete the JourneyFields import from DefaultMenu.tsx if rg confirms no other references.apps/journeys-admin/src/components/Team/CopyToTeamMenuItem/CopyToTeamMenuItem.tsx (1)
232-232: Replace the double cast with a narrower type or union type.
as unknown as JourneyFieldsbypasses all type safety to accommodate structural mismatch betweenGetAdminJourneys_journeys(admin list query) andJourneyFields(full fragment). AlthoughCopyToTeamDialogonly usestemplateandfromTemplateId—both present inGetAdminJourneys_journeys—the double cast obscures this requirement.Instead:
- Define a
JourneyPreviewinterface with onlytemplateandfromTemplateId, and type thejourneyprop to that.- Or use a union type:
journey?: JourneyFields | GetAdminJourneys_journeysand let TypeScript verify compatibility.- If a single cast is preferred, use
as JourneyFieldswithoutunknown—if it errors, the mismatch is real and worth addressing.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@apps/journeys-admin/src/components/Team/CopyToTeamMenuItem/CopyToTeamMenuItem.tsx` at line 232, The prop `journey={journeyData as unknown as JourneyFields}` bypasses type safety; instead narrow the type so CopyToTeamDialog only receives what it needs: create a small interface (e.g. JourneyPreview) containing template and fromTemplateId and type the `journey` prop accordingly, or change the prop type to a union `journey?: JourneyFields | GetAdminJourneys_journeys` so TS can verify compatibility; alternatively, if you must cast, use a single `as JourneyFields` only after confirming the shapes match. Ensure you update the `CopyToTeamDialog` prop type or the `journey` prop site in CopyToTeamMenuItem to reference the new JourneyPreview or union type (not `unknown as JourneyFields`).
…-wrapping-for-individual-journey
…-wrapping-for-individual-journey
…-wrapping-for-individual-journey
…e-journey-provider-wrapping-for-individual-journey
…or-individual-journey' of https://github.com/JesusFilm/core into urimchae/nes-316-substitute-journey-provider-wrapping-for-individual-journey
|
Plan Error |
Summary by CodeRabbit
Refactor
New Features
Tests