import { useEffect, useState } from "react"; import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query"; import { Link } from "react-router-dom"; import { toast } from "sonner"; import SettingsLayout from "../components/layout/SettingsLayout"; import ConfirmDialog from "../components/ui/ConfirmDialog"; import Modal from "../components/ui/Modal"; import type { ApiResponse } from "../lib/api"; import { api } from "../lib/api"; import { formatDate, digitsOnly, IRAN_MOBILE_RE, IRAN_NATIONAL_CODE_RE } from "../lib/utils"; import { useSubscription } from "../hooks/useSubscription"; import { useAuthStore } from "../stores/authStore"; import type { Secretary, SecretaryPermissions } from "../types"; // ── SVG icons (copied verbatim from clinic-pro-tauri) ─────────────────────── const PlusIcon = () => ( ); const EyeIcon = () => ( ); const EditIcon = () => ( ); const ChevronDown = ({ open }: { open: boolean }) => ( ); // ── Avatar (first-letter gradient fallback, like tauri) ───────────────────── function Avatar({ name, size = 32 }: { name?: string; size?: number }) { const firstLetter = (name?.trim().charAt(0) || "?").toUpperCase(); return (
مجوزهای دسترسی