mirror of
https://github.com/Dvorinka/MyClubServer.git
synced 2026-06-04 18:52:56 +00:00
upload
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
import React, { useState } from 'react';
|
||||
import AdminLayout from '../../layouts/AdminLayout';
|
||||
import { Box, Heading, FormControl, FormLabel, Input, Button, VStack, useToast, Text } from '@chakra-ui/react';
|
||||
import api from '../../services/api';
|
||||
|
||||
const AdminResetPasswordPage: React.FC = () => {
|
||||
const [email, setEmail] = useState('');
|
||||
const [isLoading, setIsLoading] = useState(false);
|
||||
const [sent, setSent] = useState(false);
|
||||
const toast = useToast();
|
||||
|
||||
const sendReset = async (e: React.FormEvent) => {
|
||||
e.preventDefault();
|
||||
setIsLoading(true);
|
||||
try {
|
||||
await api.post('/admin/users/send-reset', { email });
|
||||
setSent(true);
|
||||
toast({ status: 'success', title: 'Odesláno', description: 'Pokud účet existuje, byl odeslán e-mail pro reset hesla.' });
|
||||
} catch (err: any) {
|
||||
toast({ status: 'error', title: 'Chyba', description: err.response?.data?.error || 'Nepodařilo se odeslat e-mail.' });
|
||||
} finally {
|
||||
setIsLoading(false);
|
||||
}
|
||||
};
|
||||
|
||||
return (
|
||||
<AdminLayout>
|
||||
<Box maxW="lg">
|
||||
<Heading size="md" mb={4}>Odeslat reset hesla</Heading>
|
||||
<Text fontSize="sm" color="gray.600" mb={3}>
|
||||
Tato akce odešle uživateli e-mail s odkazem pro nastavení nového hesla. Použije se speciální SMTP konfigurace určená pouze pro reset.
|
||||
</Text>
|
||||
<VStack as="form" onSubmit={sendReset} spacing={4} align="stretch">
|
||||
<FormControl isRequired>
|
||||
<FormLabel>Email uživatele</FormLabel>
|
||||
<Input type="email" value={email} onChange={(e) => setEmail(e.target.value)} placeholder="uzivatel@example.com" />
|
||||
</FormControl>
|
||||
<Button colorScheme="blue" type="submit" isLoading={isLoading}>Odeslat e-mail</Button>
|
||||
{sent && (
|
||||
<Text color="green.600">Pokud adresa existuje, e-mail s odkazem byl odeslán.</Text>
|
||||
)}
|
||||
</VStack>
|
||||
</Box>
|
||||
</AdminLayout>
|
||||
);
|
||||
};
|
||||
|
||||
export default AdminResetPasswordPage;
|
||||
Reference in New Issue
Block a user