🐛 fix(admin): refresh user list after balance update

This commit is contained in:
web-ppanel 2026-01-27 18:08:34 +00:00
parent 9e0dd4c874
commit 7e1d5746d4
4 changed files with 23 additions and 8 deletions

View File

@ -68,7 +68,11 @@ export default function User() {
action={ref} action={ref}
actions={{ actions={{
render: (row) => [ render: (row) => [
<ProfileSheet key="profile" userId={row.id} />, <ProfileSheet
key="profile"
onUpdated={() => ref.current?.refresh()}
userId={row.id}
/>,
<SubscriptionSheet key="subscription" userId={row.id} />, <SubscriptionSheet key="subscription" userId={row.id} />,
<ConfirmButton <ConfirmButton
cancelText={t("cancel", "Cancel")} cancelText={t("cancel", "Cancel")}
@ -291,7 +295,13 @@ export default function User() {
); );
} }
function ProfileSheet({ userId }: { userId: number }) { function ProfileSheet({
userId,
onUpdated,
}: {
userId: number;
onUpdated?: () => void;
}) {
const { t } = useTranslation("user"); const { t } = useTranslation("user");
const [open, setOpen] = useState(false); const [open, setOpen] = useState(false);
const { data: user, refetch } = useQuery({ const { data: user, refetch } = useQuery({
@ -302,6 +312,11 @@ function ProfileSheet({ userId }: { userId: number }) {
return data.data as API.User; return data.data as API.User;
}, },
}); });
const refetchAll = async () => {
await refetch();
onUpdated?.();
};
return ( return (
<Sheet onOpenChange={setOpen} open={open}> <Sheet onOpenChange={setOpen} open={open}>
<SheetTrigger asChild> <SheetTrigger asChild>
@ -331,13 +346,13 @@ function ProfileSheet({ userId }: { userId: number }) {
</TabsTrigger> </TabsTrigger>
</TabsList> </TabsList>
<TabsContent className="mt-0" value="basic"> <TabsContent className="mt-0" value="basic">
<BasicInfoForm refetch={refetch as any} user={user} /> <BasicInfoForm refetch={refetchAll} user={user} />
</TabsContent> </TabsContent>
<TabsContent className="mt-0" value="notify"> <TabsContent className="mt-0" value="notify">
<NotifySettingsForm refetch={refetch as any} user={user} /> <NotifySettingsForm refetch={refetchAll} user={user} />
</TabsContent> </TabsContent>
<TabsContent className="mt-0" value="auth"> <TabsContent className="mt-0" value="auth">
<AuthMethodsForm refetch={refetch as any} user={user} /> <AuthMethodsForm refetch={refetchAll} user={user} />
</TabsContent> </TabsContent>
</Tabs> </Tabs>
</ScrollArea> </ScrollArea>

View File

@ -21,7 +21,7 @@ export function AuthMethodsForm({
refetch, refetch,
}: { }: {
user: API.User; user: API.User;
refetch: () => void; refetch: () => void | Promise<unknown>;
}) { }) {
const { t } = useTranslation("user"); const { t } = useTranslation("user");

View File

@ -47,7 +47,7 @@ export function BasicInfoForm({
refetch, refetch,
}: { }: {
user: API.User; user: API.User;
refetch: () => void; refetch: () => void | Promise<unknown>;
}) { }) {
const { t } = useTranslation("user"); const { t } = useTranslation("user");

View File

@ -34,7 +34,7 @@ export function NotifySettingsForm({
refetch, refetch,
}: { }: {
user: API.User; user: API.User;
refetch: () => void; refetch: () => void | Promise<unknown>;
}) { }) {
const { t } = useTranslation("user"); const { t } = useTranslation("user");