fix(committees): add project slug to create meeting query params (LFXV2-2223)#951
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
🚧 Files skipped from review as they are similar to previous changes (2)
WalkthroughA new computed signal ChangesCreate Meeting Query Params Signal
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~3 minutes 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Warning There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure. 🔧 ESLint
ESLint install failed. For unrecoverable errors, disable the tool in CodeRabbit configuration. Comment |
There was a problem hiding this comment.
Pull request overview
This PR fixes committee → meeting creation navigation by ensuring the /meetings/create route receives the active project slug in query params, allowing writerGuard to correctly resolve write access for the target project context.
Changes:
- Added a computed
createMeetingQueryParamssignal that includescommittee_uidand, when available,project=<project_slug>. - Updated the “Schedule Meeting” button to use the new computed query params instead of an inline object.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| apps/lfx-one/src/app/modules/committees/components/committee-meetings/committee-meetings.component.ts | Introduces a computed query-param builder that adds project (slug) when available. |
| apps/lfx-one/src/app/modules/committees/components/committee-meetings/committee-meetings.component.html | Switches the create button to bind query params from the new computed signal. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Include project slug in create-meeting query params so writerGuard can resolve write access instead of redirecting to the lens overview. Signed-off-by: Audi Young <audi.mycloud@gmail.com>
ff982e1 to
57324f8
Compare
🚀 Deployment StatusYour branch has been deployed to: https://ui-pr-951.dev.v2.cluster.linuxfound.info Deployment Details:
The deployment will be automatically removed when this PR is closed. |
dealako
left a comment
There was a problem hiding this comment.
@audigregorie — clean, well-scoped fix. 👍
Overall impression
This corrects a real navigation bug: writerGuard on /meetings/create resolves write access from the ?project= slug (falling back to active context), so without the slug the guard couldn't resolve the target project and bounced users to the lens overview. Passing committee.project_slug alongside committee_uid closes that gap. The implementation follows the file's existing initX() computed-signal pattern, the project_slug access is correctly guarded as optional (it's string | undefined on the Committee interface), and the inline comment explains the why rather than the what. Param name project matches what writerGuard reads. No correctness, security, performance, or privacy concerns.
Issue count
- 🔴 Blocking: 0
- 🟡 Minor: 0
- ⚪ Nit: 1 — no
*.spec.tsexists for this component, so the new branch (slug present vs. absent) is untested. Pre-existing gap, not introduced here; worth a follow-up if this area grows.
Bot / prior review reconciliation
- Copilot reviewed both files and generated no comments — consistent with my findings.
- @luismoriguerra approved (LGTM). Agreed.
- No CodeRabbit / Cursor Bot comments present.
Verification
Committee.project_slugconfirmed optional (committee.interface.ts:279) — theif (committee.project_slug)guard is correct.writerGuardreadsroute.queryParamMap.get('project')first (writer.guard.ts), so the supplied slug is authoritative for the navigation target./meetings/createapplies[authGuard, writerGuard](meetings.routes.ts:18) — the param is actually consumed.committeeisinput.required<Committee>(), socommittee.uidaccess is null-safe.
Decision
✅ Approved
🧹 Deployment RemovedThe deployment for PR #951 has been removed. |
Summary
The committee meetings page now passes the project slug alongside the committee UID when navigating to create a meeting. Without the project parameter, writerGuard could not resolve write access and redirected users back to the lens overview instead of opening the create flow.