Skip to content

Add empty state illustration and message when no proposals exist #7

Description

@thegreatfeez

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

  1. 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.

  2. 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

  • When there are no active proposals, the empty state block is visible instead of the plain text message
  • The empty state contains an icon or illustration, a heading, a sub-text line, and a "Create proposal" button
  • Clicking "Create proposal" in the empty state opens the create-proposal modal (same behaviour as the existing "+ New" button in the header)
  • When proposals are present, the empty state is not rendered
  • The project builds with no TypeScript errors

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

Metadata

Metadata

Labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions