diff --git a/apps/frontend/src/app/(app)/ramais/page.tsx b/apps/frontend/src/app/(app)/ramais/page.tsx index c7ef453..d8d4291 100644 --- a/apps/frontend/src/app/(app)/ramais/page.tsx +++ b/apps/frontend/src/app/(app)/ramais/page.tsx @@ -152,6 +152,42 @@ function ExtensionFormDialog({ ); } +function ResetPasswordDialog({ + result, + onOpenChange, +}: { + result: { number: string; password: string } | null; + onOpenChange: (v: boolean) => void; +}) { + return ( + + + + Senha SIP redefinida — ramal {result?.number} + +
+

+ Exibida apenas uma vez, copie agora: +

+
+ {result?.password} + +
+
+ + + +
+
+ ); +} + function ExtensionsContent() { const { can } = useAuth(); const { toast } = useToast(); @@ -160,6 +196,9 @@ function ExtensionsContent() { const debouncedSearch = useDebounce(search); const [dialogOpen, setDialogOpen] = React.useState(false); const [editing, setEditing] = React.useState(null); + const [resetResult, setResetResult] = React.useState<{ number: string; password: string } | null>( + null, + ); const { data, isLoading, isError, refetch } = useQuery({ queryKey: ['extensions'], @@ -168,9 +207,9 @@ function ExtensionsContent() { const resetPassword = useMutation({ mutationFn: (id: string) => extensionsService.resetPassword(id), - onSuccess: () => { + onSuccess: (result) => { queryClient.invalidateQueries({ queryKey: ['extensions'] }); - toast({ title: 'Senha SIP redefinida', variant: 'success' }); + setResetResult({ number: result.number, password: result.sipPassword }); }, onError: (err) => toast({ title: 'Erro', description: errorMessage(err), variant: 'destructive' }), }); @@ -283,6 +322,10 @@ function ExtensionsContent() { emptyMessage="Nenhum ramal cadastrado." /> + !v && setResetResult(null)} + /> ); } diff --git a/apps/frontend/src/services/extensions.ts b/apps/frontend/src/services/extensions.ts index 3b6e881..085a0a1 100644 --- a/apps/frontend/src/services/extensions.ts +++ b/apps/frontend/src/services/extensions.ts @@ -20,6 +20,6 @@ export const extensionsService = { update: (id: string, input: Partial) => api.patch(`/extensions/${id}`, input), resetPassword: (id: string) => - api.post(`/extensions/${id}/reset-password`), + api.post(`/extensions/${id}/reset-password`), remove: (id: string) => api.delete(`/extensions/${id}`), };