From d070aaf549048108118adfb80a28b1576f28dabe Mon Sep 17 00:00:00 2001 From: KoCoder Date: Wed, 20 Aug 2025 16:08:05 +0200 Subject: [PATCH] Mandant switcher --- src/components/nav-favorites.tsx | 14 +++++----- src/features/CRM/components/detail.tsx | 21 +++----------- src/features/CRM/queries.ts | 11 ++++++-- .../Mandant/components/team-switcher.tsx | 28 ++++++++++--------- .../tanstack-query/root-provider.tsx | 9 +++++- src/routes/_sidebar/about.tsx | 5 ++-- 6 files changed, 45 insertions(+), 43 deletions(-) diff --git a/src/components/nav-favorites.tsx b/src/components/nav-favorites.tsx index b07bdbc..444a42e 100644 --- a/src/components/nav-favorites.tsx +++ b/src/components/nav-favorites.tsx @@ -4,7 +4,7 @@ import { MoreHorizontal, StarOff, Trash2, -} from "lucide-react" +} from 'lucide-react' import { DropdownMenu, @@ -12,7 +12,7 @@ import { DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger, -} from "@/components/ui/dropdown-menu" +} from '@/components/ui/dropdown-menu' import { SidebarGroup, SidebarGroupLabel, @@ -21,16 +21,16 @@ import { SidebarMenuButton, SidebarMenuItem, useSidebar, -} from "@/components/ui/sidebar" +} from '@/components/ui/sidebar' export function NavFavorites({ favorites, }: { - favorites: { + favorites: Array<{ name: string url: string emoji: string - }[] + }> }) { const { isMobile } = useSidebar() @@ -55,8 +55,8 @@ export function NavFavorites({ diff --git a/src/features/CRM/components/detail.tsx b/src/features/CRM/components/detail.tsx index 5b89cb0..89c0bf2 100644 --- a/src/features/CRM/components/detail.tsx +++ b/src/features/CRM/components/detail.tsx @@ -1,23 +1,10 @@ -import { useAnsprechpartner, useAnsprechpartnerEditMutation } from '../queries' +import { Button } from '@/components/ui/button' +import { useAnsprechpartner } from '../queries' function AnsprechpartnerDetail({ id }: { id: number }) { - const { data } = useAnsprechpartner(id) - const { mutate } = useAnsprechpartnerEditMutation() + const { data: ansprechpartner } = useAnsprechpartner(id) - return ( -
- {JSON.stringify(data)} - -
- ) + return
} export default AnsprechpartnerDetail diff --git a/src/features/CRM/queries.ts b/src/features/CRM/queries.ts index 5af5bd8..a19f98f 100644 --- a/src/features/CRM/queries.ts +++ b/src/features/CRM/queries.ts @@ -1,4 +1,9 @@ -import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query' +import { + useMutation, + useQuery, + useQueryClient, + useSuspenseQuery, +} from '@tanstack/react-query' const ansprechpartnerKeys = { all: ['ansprechpartner'] as const, @@ -7,7 +12,7 @@ const ansprechpartnerKeys = { detail: (id: number) => [...ansprechpartnerKeys.details(), id] as const, } -type Ansprechpartner = { +export type Ansprechpartner = { ID: number CreatedAt: Date UpdatedAt: Date | undefined @@ -37,7 +42,7 @@ export function useAllAnsprechpartners() { } export function useAnsprechpartner(id: number) { - return useQuery({ + return useSuspenseQuery({ queryKey: ansprechpartnerKeys.detail(id), queryFn: async () => { const data = await fetch('http://localhost:3000/v1/ansprechpartner/' + id) diff --git a/src/features/Mandant/components/team-switcher.tsx b/src/features/Mandant/components/team-switcher.tsx index 53146c1..df29d77 100644 --- a/src/features/Mandant/components/team-switcher.tsx +++ b/src/features/Mandant/components/team-switcher.tsx @@ -26,31 +26,29 @@ export function TeamSwitcher() { const { data: currentMandant } = useCurrentMandant() const { data: mandanten } = useAllMandanten() - const { mutate } = useCurrentMandantMutation() + const editCurrentTeamMutation = useCurrentMandantMutation() useEffect(() => { - console.log('AddEvent') const down = (e: KeyboardEvent) => { - console.log('Keydown: ' + e.key) - let numKey = Number(e.key) if ((e.metaKey || e.ctrlKey) && !Number.isNaN(numKey)) { - console.log('CMD | META-before & ' + numKey) - numKey -= 1 + if (mandanten && currentMandant) { + const mandant = mandanten[numKey] - console.log('CMD | META & ' + numKey) - if (mandanten) { - mutate(mandanten[numKey]) - console.log('MUTATED ' + mandanten[numKey]) + if (mandant.id === currentMandant.id) { + return + } + + editCurrentTeamMutation.mutate(mandanten[numKey]) } } } document.addEventListener('keydown', down) return () => document.removeEventListener('keydown', down) - }, [mandanten]) + }, [mandanten, currentMandant]) if (!currentMandant || !mandanten) return

Loading...

@@ -102,12 +100,16 @@ export function TeamSwitcher() { } function MandantDMI({ mandant, index }: { mandant: Mandant; index: number }) { - const { mutate } = useCurrentMandantMutation() + const { data: currentMandant } = useCurrentMandant() + const editCurrentMandantMutaiton = useCurrentMandantMutation() + + if (!currentMandant) return

Loading...

return ( mutate(mandant)} + onClick={() => editCurrentMandantMutaiton.mutate(mandant)} + disabled={mandant.id === currentMandant.id} className="gap-2 p-2" >
+ Loading......

}> -
+ ) }