518 lines
8.9 KiB
Markdown
518 lines
8.9 KiB
Markdown
# Komponen UI Checklist WhatsApp Inbox MVP
|
|
|
|
Dokumen ini merangkum komponen UI yang perlu disiapkan untuk semua screen. Checklist ini berguna untuk:
|
|
- tim desain membuat design system minimum
|
|
- tim frontend memecah komponen reusable
|
|
- menjaga konsistensi antar screen
|
|
|
|
Format checklist:
|
|
- `Global`
|
|
- `Navigation`
|
|
- `Data Display`
|
|
- `Forms`
|
|
- `Inbox`
|
|
- `Contacts`
|
|
- `Campaigns`
|
|
- `Reports`
|
|
- `Billing`
|
|
- `Feedback States`
|
|
|
|
## 1. Foundations
|
|
|
|
### 1.1 Design Tokens
|
|
- color palette primary, success, warning, error, neutral
|
|
- typography scale
|
|
- spacing scale
|
|
- border radius scale
|
|
- shadows
|
|
- z-index layers
|
|
- icon size scale
|
|
|
|
### 1.2 Responsive Rules
|
|
- desktop main layout
|
|
- tablet fallback
|
|
- mobile stacking rules
|
|
- sidebar collapse behavior
|
|
|
|
### 1.3 Content Rules
|
|
- date time format
|
|
- currency format
|
|
- phone number format
|
|
- status label copy
|
|
- empty state copy
|
|
|
|
## 2. Global Navigation
|
|
|
|
### 2.1 Sidebar
|
|
- role-based sidebar container
|
|
- sidebar section label
|
|
- nav item
|
|
- nav item with badge
|
|
- collapsed sidebar state
|
|
|
|
### 2.2 Topbar
|
|
- page title block
|
|
- breadcrumb
|
|
- tenant/workspace indicator
|
|
- channel status indicator
|
|
- search trigger
|
|
- notifications trigger
|
|
- profile dropdown
|
|
|
|
### 2.3 Search and Notifications
|
|
- global search modal/overlay
|
|
- notification center panel
|
|
- notification item
|
|
|
|
## 3. Core Layout Components
|
|
|
|
### 3.1 Page Structure
|
|
- page container
|
|
- page header
|
|
- page subtitle
|
|
- action bar
|
|
- filter bar
|
|
- split view layout
|
|
- right-side inspector panel
|
|
- sticky section header
|
|
|
|
### 3.2 Panels and Containers
|
|
- card
|
|
- stat card
|
|
- info panel
|
|
- section container
|
|
- tab container
|
|
- accordion
|
|
- drawer
|
|
- modal
|
|
|
|
## 4. Buttons and Actions
|
|
|
|
### 4.1 Buttons
|
|
- primary button
|
|
- secondary button
|
|
- tertiary / ghost button
|
|
- danger button
|
|
- icon button
|
|
- loading button
|
|
|
|
### 4.2 Action Patterns
|
|
- dropdown action menu
|
|
- inline action link
|
|
- confirmation action
|
|
- bulk action bar
|
|
|
|
## 5. Forms
|
|
|
|
### 5.1 Inputs
|
|
- text input
|
|
- email input
|
|
- password input
|
|
- phone number input
|
|
- textarea
|
|
- search input
|
|
- number input
|
|
|
|
### 5.2 Selectors
|
|
- single select
|
|
- multi select
|
|
- async search select
|
|
- combobox
|
|
- radio group
|
|
- checkbox
|
|
- switch/toggle
|
|
- date picker
|
|
- date range picker
|
|
- time picker
|
|
|
|
### 5.3 Upload
|
|
- file upload zone
|
|
- CSV upload component
|
|
- avatar uploader
|
|
|
|
### 5.4 Form Feedback
|
|
- inline validation error
|
|
- helper text
|
|
- success state
|
|
- disabled state
|
|
- submit progress
|
|
|
|
## 6. Data Display
|
|
|
|
### 6.1 Tables and Lists
|
|
- data table
|
|
- table toolbar
|
|
- sortable column header
|
|
- paginated table
|
|
- empty table state
|
|
- list item row
|
|
- selectable row
|
|
|
|
### 6.2 Status and Metadata
|
|
- badge
|
|
- status pill
|
|
- tag chip
|
|
- avatar
|
|
- avatar group
|
|
- timestamp label
|
|
- metric delta indicator
|
|
|
|
### 6.3 Charts and KPI
|
|
- KPI card
|
|
- line chart wrapper
|
|
- bar chart wrapper
|
|
- donut/pie summary
|
|
- legend
|
|
- metric summary row
|
|
|
|
## 7. Auth Components
|
|
|
|
### 7.1 Login / Password
|
|
- auth card layout
|
|
- login form
|
|
- forgot password form
|
|
- reset password form
|
|
- password rules hint
|
|
|
|
### 7.2 Invitation
|
|
- invitation accept form
|
|
- invite success message
|
|
|
|
### 7.3 Auth Feedback
|
|
- invalid credentials alert
|
|
- account disabled alert
|
|
- token expired state
|
|
|
|
## 8. Inbox Components
|
|
|
|
Inbox adalah area terpenting. Komponen di sini harus diprioritaskan.
|
|
|
|
### 8.1 Inbox Layout
|
|
- inbox filter tabs
|
|
- inbox filter toolbar
|
|
- conversation list container
|
|
- conversation row item
|
|
- unread badge
|
|
- assignment indicator
|
|
- priority indicator
|
|
|
|
### 8.2 Conversation Detail
|
|
- conversation header
|
|
- status selector
|
|
- priority selector
|
|
- assignment selector
|
|
- conversation metadata row
|
|
- message timeline
|
|
- message group
|
|
- message bubble inbound
|
|
- message bubble outbound
|
|
- delivery status marker
|
|
- attachment preview
|
|
- template message block
|
|
- composer toolbar
|
|
- reply composer
|
|
- send button
|
|
|
|
### 8.3 Context Panels
|
|
- customer summary card
|
|
- tag manager
|
|
- note list
|
|
- add note input
|
|
- activity log list
|
|
- activity event row
|
|
|
|
### 8.4 Productivity Tools
|
|
- canned response picker
|
|
- template picker
|
|
- assign/reassign modal
|
|
- follow-up indicator
|
|
|
|
### 8.5 Inbox Feedback States
|
|
- no conversation selected
|
|
- empty inbox
|
|
- loading timeline
|
|
- send failed alert
|
|
- disconnected channel alert
|
|
|
|
## 9. Contact Components
|
|
|
|
### 9.1 Contact List
|
|
- contact row
|
|
- contact table
|
|
- contact search toolbar
|
|
- opt-in badge
|
|
|
|
### 9.2 Contact Form
|
|
- contact form section
|
|
- phone validation hint
|
|
- duplicate warning
|
|
|
|
### 9.3 Contact Detail
|
|
- contact profile card
|
|
- custom field block
|
|
- conversation history list
|
|
- campaign history list
|
|
- segment membership list
|
|
|
|
### 9.4 Import / Export
|
|
- import stepper
|
|
- field mapping table
|
|
- validation preview table
|
|
- import result summary
|
|
- export options form
|
|
|
|
### 9.5 Segments
|
|
- segment row
|
|
- segment rule builder simple
|
|
- member count badge
|
|
|
|
## 10. Template Components
|
|
|
|
### 10.1 Template List
|
|
- template row
|
|
- approval status badge
|
|
- category badge
|
|
|
|
### 10.2 Template Form
|
|
- template builder form
|
|
- header selector
|
|
- body editor
|
|
- footer input
|
|
- button config block
|
|
- template preview panel
|
|
|
|
### 10.3 Template Detail
|
|
- provider info block
|
|
- rejected reason alert
|
|
- resubmit action group
|
|
|
|
## 11. Campaign Components
|
|
|
|
### 11.1 Campaign List
|
|
- campaign row
|
|
- campaign KPI strip
|
|
- campaign status badge
|
|
|
|
### 11.2 Create Campaign Flow
|
|
- stepper
|
|
- campaign metadata form
|
|
- audience source selector
|
|
- segment picker
|
|
- schedule picker
|
|
- recipient estimate block
|
|
- review summary block
|
|
- warnings panel
|
|
|
|
### 11.3 Campaign Detail
|
|
- campaign summary header
|
|
- delivery stats cards
|
|
- send timeline
|
|
- delivery trend chart
|
|
- error breakdown list
|
|
- recipient list table
|
|
|
|
### 11.4 Campaign Recipient States
|
|
- queued badge
|
|
- sent badge
|
|
- delivered badge
|
|
- read badge
|
|
- failed badge
|
|
- skipped badge
|
|
|
|
## 12. Team / User Components
|
|
|
|
### 12.1 Users List
|
|
- user row
|
|
- role badge
|
|
- status badge
|
|
- last login field
|
|
|
|
### 12.2 User Form
|
|
- role selector
|
|
- user status toggle
|
|
|
|
### 12.3 User Detail
|
|
- user profile panel
|
|
- assigned workload stat
|
|
- personal performance widget
|
|
|
|
### 12.4 Team Performance
|
|
- leaderboard table
|
|
- workload summary
|
|
- response time comparison
|
|
|
|
## 13. Reports Components
|
|
|
|
### 13.1 Reports Overview
|
|
- report card
|
|
- report group section
|
|
|
|
### 13.2 Report Detail
|
|
- report filter bar
|
|
- KPI row
|
|
- chart card
|
|
- breakdown table
|
|
- export action
|
|
|
|
### 13.3 Specific Metrics
|
|
- response time distribution widget
|
|
- resolution rate summary
|
|
- agent productivity leaderboard
|
|
- campaign performance chart
|
|
- contact growth chart
|
|
|
|
## 14. Billing Components
|
|
|
|
### 14.1 Billing Overview
|
|
- current plan card
|
|
- quota usage cards
|
|
- renewal summary
|
|
- upgrade CTA
|
|
|
|
### 14.2 Invoices
|
|
- invoice table
|
|
- payment status badge
|
|
- invoice summary panel
|
|
|
|
### 14.3 Usage
|
|
- usage progress bar
|
|
- quota warning alert
|
|
|
|
## 15. Super Admin Components
|
|
|
|
### 15.1 Tenant Management
|
|
- tenant row
|
|
- tenant status badge
|
|
- plan badge
|
|
- usage summary cell
|
|
|
|
### 15.2 Tenant Detail
|
|
- tenant summary cards
|
|
- seat usage widget
|
|
- recent activity panel
|
|
|
|
### 15.3 Channel Management
|
|
- channel row
|
|
- provider badge
|
|
- webhook status badge
|
|
- connection validation result
|
|
- reconnect action group
|
|
|
|
### 15.4 Platform Monitoring
|
|
- global KPI cards
|
|
- alert feed
|
|
- platform health chart
|
|
- failure monitoring table
|
|
|
|
### 15.5 Governance
|
|
- audit log table
|
|
- log metadata drawer
|
|
- webhook log payload viewer
|
|
- security event list
|
|
|
|
### 15.6 Platform Settings
|
|
- feature flag toggle row
|
|
- pricing config form
|
|
- settings section header
|
|
|
|
## 16. Shared Settings Components
|
|
|
|
### 16.1 Tenant Settings
|
|
- settings side nav
|
|
- business hours editor
|
|
- auto assignment rules form
|
|
- chat tags manager
|
|
- canned responses manager
|
|
- webhook config form
|
|
|
|
### 16.2 Profile Settings
|
|
- profile summary card
|
|
- edit profile form
|
|
- change password form
|
|
|
|
## 17. Feedback and State Components
|
|
|
|
### 17.1 Feedback
|
|
- success toast
|
|
- error toast
|
|
- warning toast
|
|
- info toast
|
|
- inline alert
|
|
|
|
### 17.2 Empty States
|
|
- no conversations
|
|
- no contacts
|
|
- no campaigns
|
|
- no templates
|
|
- no reports data
|
|
- no tenants
|
|
- no invoices
|
|
|
|
### 17.3 Loading States
|
|
- page skeleton
|
|
- card skeleton
|
|
- list row skeleton
|
|
- timeline skeleton
|
|
- form loading state
|
|
|
|
### 17.4 Error States
|
|
- generic error
|
|
- permission denied
|
|
- disconnected integration
|
|
- failed delivery
|
|
- failed upload
|
|
|
|
### 17.5 Confirmation States
|
|
- suspend tenant confirmation
|
|
- deactivate user confirmation
|
|
- disconnect channel confirmation
|
|
- send campaign confirmation
|
|
- mark spam confirmation
|
|
|
|
## 18. Prioritas Implementasi Komponen
|
|
|
|
Kalau harus dibangun bertahap, urutan paling masuk akal:
|
|
|
|
1. foundations
|
|
2. navigation
|
|
3. page layout
|
|
4. buttons dan form primitives
|
|
5. data table, badge, card
|
|
6. inbox components
|
|
7. contact components
|
|
8. campaign components
|
|
9. user/team components
|
|
10. report components
|
|
11. billing components
|
|
12. super admin components
|
|
13. settings components
|
|
14. feedback states
|
|
|
|
## 19. Minimum Reusable Component Set
|
|
|
|
Kalau tim ingin mulai dari set minimum:
|
|
- app shell
|
|
- sidebar
|
|
- topbar
|
|
- page header
|
|
- card
|
|
- stat card
|
|
- data table
|
|
- badge
|
|
- modal
|
|
- drawer
|
|
- text input
|
|
- select
|
|
- date picker
|
|
- tabs
|
|
- split layout
|
|
- conversation row
|
|
- message bubble
|
|
- reply composer
|
|
- note list
|
|
- activity list
|
|
- chart wrapper
|
|
- toast/alert
|
|
|
|
Set ini sudah cukup untuk membangun mayoritas screen MVP.
|