Add shared empty states, customer product filters, and SSO handoff across dashboards.

Standardize list empty UI, searchable country fields, customer-products filter row, password/login polish, and one-time business dashboard handoff from the customer app.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Alireza Hassani
2026-08-19 19:46:57 +03:30
co-authored by Cursor
parent 832ac32a09
commit f8a9a28346
55 changed files with 1264 additions and 907 deletions
+11 -2
View File
@@ -1,6 +1,7 @@
import { useEffect, useMemo, useState } from 'react'
import { Plus } from 'lucide-react'
import { Package, Plus } from 'lucide-react'
import { Breadcrumbs } from '../components/Breadcrumbs'
import { EmptyState } from '../components/EmptyState'
import { PageTitle } from '../components/PageTitle'
import { ConfirmDeleteModal } from '../components/ConfirmDeleteModal'
import { EditStoreItemsModal } from '../components/EditStoreItemsModal'
@@ -318,7 +319,15 @@ export function StoreSpecialsPage() {
{isLoading ? (
<p className={styles.empty}>{t('website.specialItems.loading')}</p>
) : specials.length === 0 ? (
<p className={styles.empty}>{t('website.specialItems.empty')}</p>
<EmptyState
icon={Package}
message={t('website.specialItems.empty')}
actionLabel={t('website.specialItems.addFab')}
onAction={() => {
setError('')
setCreateOpen(true)
}}
/>
) : (
<div className={styles.carousels}>
{specials.map((special) => (