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

View File

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

View File

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

View File

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