add function for user

- create house
- edit house
- delete house
- list all member for active house
This commit is contained in:
2026-02-08 13:43:14 +07:00
parent 42435faa7f
commit 1d3e79c546
40 changed files with 1006 additions and 170 deletions

View File

@@ -14,6 +14,7 @@ import { useState } from 'react';
export const Route = createFileRoute('/(app)/(auth)/kanri/houses')({
component: RouteComponent,
staticData: { breadcrumb: () => m.nav_houses() },
});
function RouteComponent() {
@@ -54,7 +55,7 @@ function RouteComponent() {
</CardTitle>
</CardHeader>
<CardContent className="flex flex-col gap-4">
<div className="flex items-center justify-between">
<div className="flex items-center justify-between gap-2">
<SearchInput
keywords={searchKeyword}
setKeyword={setSearchKeyword}

View File

@@ -1,7 +1,7 @@
import { m } from '@paraglide/messages';
import { createFileRoute } from '@tanstack/react-router';
export const Route = createFileRoute('/(app)/(auth)/dashboard')({
export const Route = createFileRoute('/(app)/(auth)/management/dashboard')({
component: RouteComponent,
staticData: { breadcrumb: () => m.nav_dashboard() },
});

View File

@@ -0,0 +1,30 @@
import CurrentUserActionGroup from '@/components/house/current-user-action-group';
import CurrentUserHouseList from '@/components/house/current-user-house-list';
import CurrentUserMemberList from '@/components/house/current-user-member-list';
import { m } from '@/paraglide/messages';
import { housesQueries } from '@/service/queries';
import { authClient } from '@lib/auth-client';
import { useQuery } from '@tanstack/react-query';
import { createFileRoute } from '@tanstack/react-router';
export const Route = createFileRoute('/(app)/(auth)/management/houses')({
component: RouteComponent,
staticData: { breadcrumb: () => m.nav_houses() },
});
function RouteComponent() {
const { data: houses } = useQuery(housesQueries.currentUser());
const { data: activeHouse } = authClient.useActiveOrganization();
if (!activeHouse || !houses) return null;
return (
<div className="@container/main p-4">
<div className="*:data-[slot=card]:from-primary/5 *:data-[slot=card]:to-card dark:*:data-[slot=card]:bg-card *:data-[slot=card]:bg-linear-to-br *:data-[slot=card]:shadow-xs grid grid-cols-1 @xl/main:grid-cols-2 @5xl/main:grid-cols-3 gap-4">
<CurrentUserHouseList activeHouse={activeHouse} />
<CurrentUserMemberList activeHouse={activeHouse} />
<CurrentUserActionGroup activeHouse={activeHouse} />
</div>
</div>
);
}

View File

@@ -0,0 +1,9 @@
import { createFileRoute } from '@tanstack/react-router'
export const Route = createFileRoute('/(app)/(auth)/management/')({
component: RouteComponent,
})
function RouteComponent() {
return <div>Hello "/(app)/(auth)/management/"!</div>
}

View File

@@ -0,0 +1,6 @@
import { m } from '@/paraglide/messages';
import { createFileRoute } from '@tanstack/react-router';
export const Route = createFileRoute('/(app)/(auth)/management')({
staticData: { breadcrumb: () => m.nav_label_management() },
});

View File

@@ -23,7 +23,7 @@ function RouteComponent() {
}, [language]);
return (
<AuthProvider>
<SidebarProvider defaultOpen={false}>
<SidebarProvider>
<AppSidebar />
<SidebarInset>
<Header />