-
Notifications
You must be signed in to change notification settings - Fork 15
Refactor Document Access Feature (Client and ServerSide) #261
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
…luewave-dataroom into refactor/document-access
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the 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. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great work!
I just wanted to mention that on the document page, we're encountering a server error (500) related to displaying documents in the table. As a result, we can't upload documents, and there's an error associated with that as well.
Also, since the name of the link has been changed to documentLink in the Schema file, it might be better to update the corresponding name like linkId in shared/models/linkModels.ts to match that for consistency in the future.
…nd explicit interfaces
### ✅ Changes Made - Added a Prisma constraint to ensure each `alias` is unique **per `documentId`**, using `@@unique([documentId, alias])`. - In `SharingOptionsAccordion`, updated `Select` to store values by `key` and display user-friendly `label` values (e.g., "Name" instead of "name"). - Refactored `useCreateLink` to return `{ mutateAsync, isPending, error }` for cleaner integration in components. - Refactored `CreateLink.useFormSubmission` to properly handle mutation state and fix loading state & error handling. - Fixed a bug in `VisitorInfoModal` reported in **`Error.pdf` Bug #*2***, where untouched required fields were not validated on first submit. - Added validation to block submission until all required fields are filled. - Integrated loading state to disable the Confirm button during submission. --- ### 📝 Notes - The validation in `VisitorInfoModal` is a temporary fix. A full refactor using `Zod` is planned. - Alias uniqueness is now scoped per document rather than globally.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍🏼
* Prod Deployment (bluewave-labs#250) Update Master Branch with the latest Release --------- Co-authored-by: Mahid Ahmad <[email protected]> Co-authored-by: Sepideh Shahbazi <[email protected]> Co-authored-by: Parwat Kunwar <[email protected]> * Creating password form modal and improving profile form (bluewave-labs#253) This closes bluewave-labs#251. **Implemented:** 1. Provided Edit Mode for Profile form. 2. Added "Change password" button in the Profile form. 3. Removed profile and password tab section. 4. Removed Avatar Upload UI temporarily in the Profile form. 5. Created a new PasswordFormModal.tsx file and replaced it with PasswordForm.tsx. 6. Ensured UI Consistency & Responsiveness. **UI changes:** **Profile form:** <img width="709" alt="ProfileForm3" src="https://github.com/user-attachments/assets/4e3e159b-67f7-457e-a4e8-bc5056abc794" /> <img width="698" alt="ProfileForm4" src="https://github.com/user-attachments/assets/f716b98b-5cfd-4dc3-b824-08ac8b33fc81" /> **Password form modal:** <img width="535" alt="PasswordFormModal2" src="https://github.com/user-attachments/assets/ca56963b-30c5-4d76-85bb-3e9b147c7222" /> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced an enhanced profile editing mode that lets users toggle between view and edit states with dynamic controls, including dedicated buttons for editing, saving, and canceling changes. - Implemented a new password update modal that offers a streamlined, validated password change experience when editing profile details. - **Bug Fixes** - Removed the previous password change form to eliminate confusion and improve user navigation. - **Refactor** - Consolidated profile management by removing the previous inline password change form and tabbed interface, resulting in a simplified, unified user experience. - Updated the profile page to utilize the new profile form component, enhancing overall functionality. - **Style** - Enhanced button styling by updating font sizes and adding new background properties in the theme. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Mahid Ahmad <[email protected]> * Env Management (bluewave-labs#258) Closes bluewave-labs#259 - Improved environment management and added env badge - Updated `.gitignore` and scripts * Refactor Document Access Feature (Client and ServerSide) (bluewave-labs#261) **This PR Fixes** - bluewave-labs#217 - bluewave-labs#221 - bluewave-labs#222 - bluewave-labs#223 - bluewave-labs#224 (Inline PDF and Analytics will be done in another PR) This Pull Request will cover the refactor of document access feature: - Database tables and Directory naming convention changed as requested. - Integrated API calls using hooks - Store user required fields in visitorFields and dynamic display fields in the form - Support for any additional user meta data needed in a table field `visitorMetaData` - Integrate hook to upload document and invalidate query which removed explicit url reload to fetch latest documents once a upload is done - Add constraint to make sure link `alias` is unique as per a single user only. The below Query will support adding alias with more and one empty and null values but not any scalar values. We need to create a migration and run this query. ```sql -- DropIndex DROP INDEX "DocumentLink_createdByUserId_alias_key"; -- This allows multiple NULL aliases, -- but enforces uniqueness on alias per createdByUserId if alias is not null CREATE UNIQUE INDEX unique_alias_per_user ON "DocumentLink"("createdByUserId", "alias") WHERE alias IS NOT NULL AND alias <> ''; ``` **To look the UI Changes please go through this merged PR created by** @SepidehShahbazi [Overhauling CreateLink modal and SendingAccordion, and adding React Query](bluewave-labs#260) --------- Co-authored-by: Sepideh Shahbazi <[email protected]> Co-authored-by: Mahid Ahmad <[email protected]> * Remove deprecated authentication and document handling routes * Fixed Build Errors --------- Co-authored-by: Mahid Ahmad <[email protected]> Co-authored-by: Sepideh Shahbazi <[email protected]> Co-authored-by: Parwat Kunwar <[email protected]> Co-authored-by: Sepideh Shahbazi <[email protected]>
* Prod Deployment (bluewave-labs#250) Update Master Branch with the latest Release --------- Co-authored-by: Mahid Ahmad <[email protected]> Co-authored-by: Sepideh Shahbazi <[email protected]> Co-authored-by: Parwat Kunwar <[email protected]> * Creating password form modal and improving profile form (bluewave-labs#253) This closes bluewave-labs#251. **Implemented:** 1. Provided Edit Mode for Profile form. 2. Added "Change password" button in the Profile form. 3. Removed profile and password tab section. 4. Removed Avatar Upload UI temporarily in the Profile form. 5. Created a new PasswordFormModal.tsx file and replaced it with PasswordForm.tsx. 6. Ensured UI Consistency & Responsiveness. **UI changes:** **Profile form:** <img width="709" alt="ProfileForm3" src="https://github.com/user-attachments/assets/4e3e159b-67f7-457e-a4e8-bc5056abc794" /> <img width="698" alt="ProfileForm4" src="https://github.com/user-attachments/assets/f716b98b-5cfd-4dc3-b824-08ac8b33fc81" /> **Password form modal:** <img width="535" alt="PasswordFormModal2" src="https://github.com/user-attachments/assets/ca56963b-30c5-4d76-85bb-3e9b147c7222" /> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced an enhanced profile editing mode that lets users toggle between view and edit states with dynamic controls, including dedicated buttons for editing, saving, and canceling changes. - Implemented a new password update modal that offers a streamlined, validated password change experience when editing profile details. - **Bug Fixes** - Removed the previous password change form to eliminate confusion and improve user navigation. - **Refactor** - Consolidated profile management by removing the previous inline password change form and tabbed interface, resulting in a simplified, unified user experience. - Updated the profile page to utilize the new profile form component, enhancing overall functionality. - **Style** - Enhanced button styling by updating font sizes and adding new background properties in the theme. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Mahid Ahmad <[email protected]> * Env Management (bluewave-labs#258) Closes bluewave-labs#259 - Improved environment management and added env badge - Updated `.gitignore` and scripts * Refactor Document Access Feature (Client and ServerSide) (bluewave-labs#261) **This PR Fixes** - bluewave-labs#217 - bluewave-labs#221 - bluewave-labs#222 - bluewave-labs#223 - bluewave-labs#224 (Inline PDF and Analytics will be done in another PR) This Pull Request will cover the refactor of document access feature: - Database tables and Directory naming convention changed as requested. - Integrated API calls using hooks - Store user required fields in visitorFields and dynamic display fields in the form - Support for any additional user meta data needed in a table field `visitorMetaData` - Integrate hook to upload document and invalidate query which removed explicit url reload to fetch latest documents once a upload is done - Add constraint to make sure link `alias` is unique as per a single user only. The below Query will support adding alias with more and one empty and null values but not any scalar values. We need to create a migration and run this query. ```sql -- DropIndex DROP INDEX "DocumentLink_createdByUserId_alias_key"; -- This allows multiple NULL aliases, -- but enforces uniqueness on alias per createdByUserId if alias is not null CREATE UNIQUE INDEX unique_alias_per_user ON "DocumentLink"("createdByUserId", "alias") WHERE alias IS NOT NULL AND alias <> ''; ``` **To look the UI Changes please go through this merged PR created by** @SepidehShahbazi [Overhauling CreateLink modal and SendingAccordion, and adding React Query](bluewave-labs#260) --------- Co-authored-by: Sepideh Shahbazi <[email protected]> Co-authored-by: Mahid Ahmad <[email protected]> * Remove deprecated authentication and document handling routes * Fixed Build Errors * Fix document count retrieval in DocumentsPage component --------- Co-authored-by: Mahid Ahmad <[email protected]> Co-authored-by: Sepideh Shahbazi <[email protected]> Co-authored-by: Parwat Kunwar <[email protected]> Co-authored-by: Sepideh Shahbazi <[email protected]>
This PR Fixes
This Pull Request will cover the refactor of document access feature:
visitorMetaData
alias
is unique as per a single user only. The below Query will support adding alias with more and one empty and null values but not any scalar values. We need to create a migration and run this query.To look the UI Changes please go through this merged PR created by @SepidehShahbazi
Overhauling CreateLink modal and SendingAccordion, and adding React Query