Frontend — Dashboard
Summary
When the multisig has no active proposals, the dashboard shows a bare grey text line that gives no guidance on what to do next. Replacing it with a proper empty state — an icon, a short message, and a prompt to create the first proposal — makes the app feel finished and helps new users take action immediately.
Background
DashboardPage.tsx already handles the zero-proposals case with a simple paragraph: "No active proposals" (around line 44). The component already receives an onCreateProposal callback prop that opens the create-proposal modal when called. No new props, hooks, or contract reads are needed — the empty state is a pure UI improvement within the existing conditional branch. The project uses Tailwind for all styling and has no icon library installed, so any illustration should be an inline SVG or a Unicode/emoji symbol.
What Needs to Be Done
-
In frontend/src/pages/DashboardPage.tsx, replace the plain <p>No active proposals</p> with a centred empty-state block. The block should contain a small decorative icon (inline SVG or a large Unicode symbol), a short heading such as "No active proposals", a one-line sub-text explaining what a proposal is or what to do, and a button labelled "Create proposal" that calls the existing onCreateProposal prop.
-
Style the new block to be visually centred in the proposals area, with generous vertical padding so it occupies roughly the same vertical space as two or three ProposalCard placeholders would.
Acceptance Criteria
Files to Look At
frontend/src/pages/DashboardPage.tsx — the empty-state branch is around line 44; onCreateProposal prop is already available in this component
Difficulty: Easy
Frontend — Dashboard
Summary
When the multisig has no active proposals, the dashboard shows a bare grey text line that gives no guidance on what to do next. Replacing it with a proper empty state — an icon, a short message, and a prompt to create the first proposal — makes the app feel finished and helps new users take action immediately.
Background
DashboardPage.tsxalready handles the zero-proposals case with a simple paragraph: "No active proposals" (around line 44). The component already receives anonCreateProposalcallback prop that opens the create-proposal modal when called. No new props, hooks, or contract reads are needed — the empty state is a pure UI improvement within the existing conditional branch. The project uses Tailwind for all styling and has no icon library installed, so any illustration should be an inline SVG or a Unicode/emoji symbol.What Needs to Be Done
In
frontend/src/pages/DashboardPage.tsx, replace the plain<p>No active proposals</p>with a centred empty-state block. The block should contain a small decorative icon (inline SVG or a large Unicode symbol), a short heading such as "No active proposals", a one-line sub-text explaining what a proposal is or what to do, and a button labelled "Create proposal" that calls the existingonCreateProposalprop.Style the new block to be visually centred in the proposals area, with generous vertical padding so it occupies roughly the same vertical space as two or three ProposalCard placeholders would.
Acceptance Criteria
Files to Look At
frontend/src/pages/DashboardPage.tsx— the empty-state branch is around line 44;onCreateProposalprop is already available in this componentDifficulty: Easy