🐛 fix(admin): refresh user list after balance update
This commit is contained in:
parent
9e0dd4c874
commit
7e1d5746d4
@ -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>
|
||||||
|
|||||||
@ -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");
|
||||||
|
|
||||||
|
|||||||
@ -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");
|
||||||
|
|
||||||
|
|||||||
@ -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");
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user