/
softailor
/
gridient
Обзор
Документация
Войти
/
softailor
/
gridient
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
frontend/src/modules/AccessRights/components/UpdateUserTokenModal/UpdateUserTokenModal.tsx
70 строк
2 KB
Jenkins
Auto add
18 фев 2026, 10:19
18 фев 2026, 10:19
1e6c4f8
Код
Авторство
О чём код?
import { FC } from "react"; import { Button, Input, notification, Spin } from "antd"; import { useResetPasswordRequestQuery } from "services"; import { Modal } from "ui"; import "./UpdateUserTokenModal.scss"; type UpdateUserTokenModalProps = { isOpen: boolean; onClose: () => void; selectedUserLogin?: string; }; export const UpdateUserTokenModal: FC<UpdateUserTokenModalProps> = ({ isOpen, onClose, selectedUserLogin, }) => { const { data: token, isLoading, refetch, } = useResetPasswordRequestQuery( { login: selectedUserLogin }, { skip: !selectedUserLogin || !isOpen, }, ); const link = `${window.location.origin}/reset-password?token=${token}`; const handleCopy = () => { navigator.clipboard .writeText(link) .then(() => { notification.success({ title: "Ссылка скопирована!", description: "Ссылка успешно скопирована в буфер обмена.", }); }) .catch(() => { notification.error({ title: "Ошибка копирования", description: "Не удалось скопировать ссылку. Попробуйте снова.", }); }); }; return ( <Modal size="s" title="Ссылка на смену пароля" isOpen={isOpen} onClose={onClose} footer={<Button onClick={onClose}>Закрыть</Button>} className="update-token-modal" > <Spin spinning={isLoading}> <Input value={link} readOnly style={{ marginBottom: "16px" }} /> <div className="update-token-modal__btns"> <Button type="primary" onClick={() => refetch()}> Пересоздать ссылку </Button> <Button type="primary" onClick={handleCopy}> Копировать ссылку </Button> </div> </Spin> </Modal> ); };