-
Notifications
You must be signed in to change notification settings - Fork 7
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
[ENG-65]
[ENG-66]
- example proposal templates + unified UX for Sablier PB and general PB
#2646
Conversation
…em within ProposalBuilder
✅ Deploy Preview for decent-interface-dev ready!
To edit notification comments on pull requests, go to your Netlify site configuration. |
…2533-sablier-and-transfer-template
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.
Thanks for the additional context @mudrila!
The UI on /proposals/new/sablier/metadata
doesn't look identical to /proposals/new/metadata
, there are a handful of differences. Maybe some or all of these are expected?
difference | /proposals/new/metadata |
/proposal/new/sablier/metadata |
---|---|---|
Page title | "Create Proposal" | "Create Proposal Template" |
Title subtext | "A short title for this proposal" | "A short title for this proposal template" |
Description subtext | "Add a brief description, markdown supported" | "Markdown syntax supported" |
Preview card/section | Includes general proposal information | Includes Sablier-specific information |
Nitpick on Naming
Not a change that was introduced in this PR, but I think calling the Sablier page "Create Proposal Template" isn't correct.
We're not creating a template here, we're using an existing template to create a proposal.
So maybe rename the new Sablier proposal workflow/page just "Create Proposal.
This would change the full breadcrumb from:
- "Your DAO / Proposal Templates / Create Proposal Template", to
- "Your DAO / Proposal Templates / Create Proposal"
which IMO is in line with the breadcrumb and page title for the original Create Proposal flow (at /proposals/new/metadata
): "Your DAO / All Proposals / Create Proposal".
Oh dang - that definitely just a lack of proper conditional rendering - it is supposed to reflect page title, title subtext, description subtext from the "Create Proposal" UI. But yeah - the summary and streams creation are supposed to be slightly different (same components - different content). I'll fix this |
- Introduced a new component, ShowNonceInputOnMultisig, to conditionally render a nonce input field based on governance settings. - Updated ProposalBuilder and related pages to utilize the new contentRoute prop for rendering transaction forms and nonce input, improving modularity. - Refactored multiple proposal creation pages to integrate nonce handling, ensuring a consistent user experience across different proposal types. - Streamlined imports and improved code organization for better maintainability. These changes aim to enhance the user experience when creating proposals, particularly for multisig governance scenarios.
…2533-example-proposal-templates-composition
- Added `prevStepUrl` and `nextStepUrl` props to the ProposalBuilder component to facilitate navigation between proposal steps. - Refactored multiple proposal creation pages to compute these URLs dynamically using the current location, improving user experience and consistency across different proposal types. - Updated imports to include `useLocation` for better URL management. These changes aim to streamline the proposal creation process and enhance navigation for users.
…ality and navigation - Introduced new props for `pageHeaderTitle`, `pageHeaderBreadcrumbs`, and `pageHeaderButtonClickHandler` in the ProposalBuilder component to improve header customization across different proposal creation pages. - Updated multiple proposal creation pages to utilize the new header props, ensuring a consistent user experience and better navigation. - Streamlined imports and improved code organization for maintainability. These changes aim to enhance the user experience when creating proposals by providing clearer navigation and context within the application.
…e Clarity - Simplified the import structure in `constants.ts` by removing unused imports related to `ProposalBuilderMode`. - Introduced `ProposalMetadataTypeProps` interface and default props functions in `ProposalMetadata.tsx` to standardize metadata handling across proposal types. - Updated `ProposalBuilder` component to accept `proposalMetadataTypeProps`, enhancing flexibility in rendering metadata. - Refactored multiple proposal creation pages to utilize the new metadata props, ensuring consistent user experience and improved maintainability. - Streamlined the `ProposalMetadata` component to use the new props for labels and helpers, enhancing clarity and reducing conditional logic. These changes aim to improve the organization and readability of the code while providing a more consistent approach to handling proposal metadata.
…ns Experience - Removed unused imports and components from the ProposalBuilder, streamlining the code. - Introduced a new `ActionsExperience` component to encapsulate action handling logic, improving modularity and readability. - Updated the `SafeProposalWithActionsCreatePage` to utilize the new `ActionsExperience` component, enhancing the user interface for action management. - Set `actionsExperience` prop to `null` in other proposal creation pages to maintain consistency where actions are not applicable. These changes aim to improve the organization and clarity of the proposal creation process, particularly in managing proposal actions.
…tep Button Handling - Removed the `nextStepUrl` prop from the ProposalBuilder component to streamline button management. - Introduced a `metadataStepButtons` function in multiple proposal creation pages to encapsulate button rendering logic, enhancing modularity. - Updated the `SafeCreateProposalTemplatePage`, `SafeProposalWithActionsCreatePage`, `SafeProposalCreatePage`, and `SafeSablierProposalCreatePage` to utilize the new button handling approach, ensuring consistency across different proposal types. - Cleaned up imports and improved code organization for better maintainability. These changes aim to enhance the clarity and consistency of step button handling in the proposal creation process.
- Removed the `ProposalBuilderMode` enum and associated logic to simplify the component structure. - Updated `ProposalBuilder` and related pages to accept new props for `transactionsDetails`, `templateDetails`, and `streamsDetails`, allowing for more dynamic rendering of proposal details. - Cleaned up imports and improved code organization across multiple proposal creation pages, enhancing maintainability. - Streamlined the handling of transactions, templates, and streams in the proposal creation process, ensuring a more consistent user experience. These changes aim to improve the modularity and clarity of the proposal creation components, facilitating easier future enhancements.
…Handling - Updated the `metadataStepButtons` function in multiple proposal creation pages to accept an object with `formErrors` and `createProposalBlocked` parameters, enhancing clarity and consistency in button state management. - Refactored the `ProposalBuilder` component to align with the new metadata handling approach, ensuring a more modular and maintainable code structure. - Improved the user experience by ensuring that button states are derived from clear and standardized props across different proposal types. These changes aim to enhance the organization and readability of the proposal creation process, particularly in managing step button states.
- Updated the `metadataStepButtons` function in multiple proposal creation pages to a unified `stepButtons` function, enhancing clarity and consistency in button state management. - Refactored the `ProposalBuilder` component to align with the new step button handling approach, ensuring a more modular and maintainable code structure. - Improved the user experience by ensuring that button states are derived from clear and standardized props across different proposal types. These changes aim to enhance the organization and readability of the proposal creation process, particularly in managing step button states.
…eation Pages - Removed the ProposalBuilder component from its original location, streamlining the import paths across multiple proposal creation pages. - Updated the import statements in SafeCreateProposalTemplatePage, SafeProposalWithActionsCreatePage, SafeProposalCreatePage, and SafeSablierProposalCreatePage to reflect the new structure. - Enhanced code organization and maintainability by consolidating related components under a single directory. These changes aim to improve the modularity and clarity of the proposal creation process, facilitating easier future enhancements.
…or Enhanced Flexibility - Updated the ProposalBuilder and ProposalDetails components to replace JSX.Element with React.ReactNode for props related to rendering transactions, templates, and streams. - This change improves the flexibility of the components, allowing for a wider range of renderable content types. - Adjusted the StepButtons component to align with the new prop types, ensuring consistency across the proposal creation process. These modifications aim to enhance the modularity and adaptability of the proposal components, facilitating easier future enhancements.
…l-templates-composition Refactoring on top of #2646
…2533-sablier-and-transfer-template
…nsfer-template `[ENG-65]` `[ENG-66]` Create example templates for Transfer, Airdrop and Sablier stream creation
[ENG-65]
[ENG-66]
- example proposal templates + unified UX for Sablier PB and general PB
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.
Mostly all good! Nice work. Just a couple of change requests.
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.
Alot of moving parts. but looks like @adamgall is working closely, agreed with the comments and so far so good with the updates made so far. Plenty more to do. see yall in the next PR.
src/pages/dao/proposals/actions/new/SafeProposalWithActionsCreatePage.tsx
Show resolved
Hide resolved
@adamgall @DarksightKellar @Da-Colon I went through testing paths and everything looks legit to me. Anyway, I'd like to have additional layer of testing when we'll be doing release - so I'm merging it into |
Changes
ProposalBuilder
in order to streamline and standardize UI / UX. Since "Stream Sablier Builder" was initially build as "copy-paste" adaptation ofProposalBuilder
eventually UX diverged over time.Addressed issues
[ENG-65]
https://linear.app/decent-labs/issue/ENG-65/implement-airdrop-action-during-proposal-creation[ENG-66]
https://linear.app/decent-labs/issue/ENG-66/add-example-proposal-templatesTesting
Same UI / UX for Sablier Proposal Builder and "general" Proposal Builder
/proposals/new/sablier/metadata
)Example Templates for Airdrop, Send Assets and Sablier Stream