Skip to content

Commit 487b3f0

Browse files
committed
feat: add username list when clicking total users card, added flex to stat card divs
1 parent d2f899b commit 487b3f0

1 file changed

Lines changed: 52 additions & 12 deletions

File tree

apps/web/src/routes/_app/dashboard.tsx

Lines changed: 52 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import { PageHeader } from '@/components/PageHeader';
1313
import { useInstrumentInfoQuery } from '@/hooks/useInstrumentInfoQuery';
1414
import { summaryQueryOptions, useSummaryQuery } from '@/hooks/useSummaryQuery';
1515
import { useAppStore } from '@/store';
16+
import { useUsersQuery } from '@/hooks/useUsersQuery';
1617

1718
const RouteComponent = () => {
1819
const changeGroup = useAppStore((store) => store.changeGroup);
@@ -23,7 +24,9 @@ const RouteComponent = () => {
2324
const summaryQuery = useSummaryQuery({ params: { groupId: currentGroup?.id } });
2425
const navigate = useNavigate();
2526
const [isLookupOpen, setIsLookupOpen] = useState(false);
27+
const [isUserLookupOpen, setIsUserLookupOpen] = useState(false);
2628
const instrumentInfoQuery = useInstrumentInfoQuery();
29+
const userInfoQuery = useUsersQuery();
2730

2831
const chartColors = {
2932
records: {
@@ -151,17 +154,54 @@ const RouteComponent = () => {
151154
</div>
152155
<div className="body-font" data-testid="dashboard-statistics">
153156
<div className="grid grid-cols-1 gap-6 text-center lg:grid-cols-2 xl:grid-cols-4">
154-
<div className="group transform transition-all duration-300 hover:scale-105" data-testid="statistic-users">
155-
<StatisticCard
156-
icon={
157-
<UsersIcon className="h-12 w-12 text-blue-600 transition-transform duration-300 group-hover:scale-110 dark:text-blue-400" />
158-
}
159-
label={t({
160-
en: 'Total Users',
161-
fr: "Nombre d'utilisateurs"
162-
})}
163-
value={summaryQuery.data.counts.users}
164-
/>
157+
<div
158+
className="group flex transform transition-all duration-300 hover:scale-105"
159+
data-testid="statistic-users"
160+
>
161+
<Dialog open={isUserLookupOpen} onOpenChange={setIsUserLookupOpen}>
162+
<Dialog.Trigger className="grow">
163+
<StatisticCard
164+
icon={
165+
<UsersIcon className="h-12 w-12 text-blue-600 transition-transform duration-300 group-hover:scale-110 dark:text-blue-400" />
166+
}
167+
label={t({
168+
en: 'Total Users',
169+
fr: "Nombre d'utilisateurs"
170+
})}
171+
value={summaryQuery.data.counts.users}
172+
/>
173+
</Dialog.Trigger>
174+
<Dialog.Content data-spotlight-type="subject-lookup-modal" data-testid="datahub-subject-lookup-dialog">
175+
<Dialog.Header>
176+
<Dialog.Title>
177+
{t({
178+
en: 'Users',
179+
fr: 'Les utilisateurs'
180+
})}
181+
</Dialog.Title>
182+
</Dialog.Header>
183+
<ul className="flex flex-col gap-5">
184+
<AnimatePresence mode="popLayout">
185+
{userInfoQuery.data?.map((user, i) => {
186+
return (
187+
<motion.li
188+
layout
189+
animate={{ opacity: 1, y: 0 }}
190+
exit={{ opacity: 0 }}
191+
initial={{ opacity: 0 }}
192+
key={user.username}
193+
transition={{ bounce: 0.2, delay: 0.15 * i, duration: 1.5, type: 'spring' }}
194+
>
195+
<div className="flex justify-between gap-4">
196+
<p>{user.username}</p>
197+
</div>
198+
</motion.li>
199+
);
200+
})}
201+
</AnimatePresence>
202+
</ul>
203+
</Dialog.Content>
204+
</Dialog>
165205
</div>
166206
<button
167207
className="group transform transition-all duration-300 hover:scale-105"
@@ -184,7 +224,7 @@ const RouteComponent = () => {
184224
/>
185225
</button>
186226
<div
187-
className="group transform transition-all duration-300 hover:scale-105"
227+
className="group flex transform transition-all duration-300 hover:scale-105"
188228
data-testid="statistic-instruments"
189229
>
190230
<Dialog open={isLookupOpen} onOpenChange={setIsLookupOpen}>

0 commit comments

Comments
 (0)