fix: Corriger types TypeScript pour globalSelectedOrgId null
- Ajouter vérification null avant isValidUUID dans tous les useState - Ajouter vérification null dans tous les useEffect de synchronisation - Typer explicitement payslip_id dans map - Compléter createForm reset avec tous les champs requis
This commit is contained in:
parent
266eb3598a
commit
88ad651557
9 changed files with 18 additions and 15 deletions
|
|
@ -316,7 +316,7 @@ export default function CotisationsMensuellesPage() {
|
|||
|
||||
// État local initialisé avec la valeur globale si elle est un UUID valide
|
||||
const [selectedOrgId, setSelectedOrgId] = useState<string>(
|
||||
isValidUUID(globalSelectedOrgId) ? globalSelectedOrgId : ""
|
||||
(globalSelectedOrgId && isValidUUID(globalSelectedOrgId)) ? globalSelectedOrgId : ""
|
||||
);
|
||||
|
||||
const handlePeriodChange = (value: Filters["period"]) => {
|
||||
|
|
@ -365,7 +365,7 @@ export default function CotisationsMensuellesPage() {
|
|||
|
||||
// Synchronisation bidirectionnelle : global → local
|
||||
useEffect(() => {
|
||||
if (staffCheck?.isStaff && isValidUUID(globalSelectedOrgId)) {
|
||||
if (staffCheck?.isStaff && globalSelectedOrgId && isValidUUID(globalSelectedOrgId)) {
|
||||
setSelectedOrgId(globalSelectedOrgId);
|
||||
}
|
||||
}, [globalSelectedOrgId, staffCheck?.isStaff]);
|
||||
|
|
|
|||
|
|
@ -212,7 +212,7 @@ export default function FacturationPage() {
|
|||
|
||||
// État local initialisé avec la valeur globale si elle est un UUID valide
|
||||
const [selectedOrgId, setSelectedOrgId] = useState<string>(
|
||||
isValidUUID(globalSelectedOrgId) ? globalSelectedOrgId : ""
|
||||
(globalSelectedOrgId && isValidUUID(globalSelectedOrgId)) ? globalSelectedOrgId : ""
|
||||
);
|
||||
|
||||
// Détection staff
|
||||
|
|
@ -247,7 +247,7 @@ export default function FacturationPage() {
|
|||
|
||||
// Synchronisation bidirectionnelle : global → local
|
||||
useEffect(() => {
|
||||
if (meData?.is_staff && isValidUUID(globalSelectedOrgId)) {
|
||||
if (meData?.is_staff && globalSelectedOrgId && isValidUUID(globalSelectedOrgId)) {
|
||||
setSelectedOrgId(globalSelectedOrgId);
|
||||
}
|
||||
}, [globalSelectedOrgId, meData?.is_staff]);
|
||||
|
|
|
|||
|
|
@ -84,7 +84,7 @@ export default function InformationsPage() {
|
|||
|
||||
// État local initialisé avec la valeur globale si elle est un UUID valide
|
||||
const [selectedOrgId, setSelectedOrgId] = useState<string>(
|
||||
isValidUUID(globalSelectedOrgId) ? globalSelectedOrgId : ""
|
||||
(globalSelectedOrgId && isValidUUID(globalSelectedOrgId)) ? globalSelectedOrgId : ""
|
||||
);
|
||||
|
||||
// Récupération dynamique des infos client via /api/me
|
||||
|
|
@ -144,7 +144,7 @@ export default function InformationsPage() {
|
|||
|
||||
// Synchronisation bidirectionnelle : global → local
|
||||
useEffect(() => {
|
||||
if (meData?.is_staff && isValidUUID(globalSelectedOrgId)) {
|
||||
if (meData?.is_staff && globalSelectedOrgId && isValidUUID(globalSelectedOrgId)) {
|
||||
setSelectedOrgId(globalSelectedOrgId);
|
||||
}
|
||||
}, [globalSelectedOrgId, meData?.is_staff]);
|
||||
|
|
|
|||
|
|
@ -351,7 +351,7 @@ export default function SalariesPage() {
|
|||
const [orgs, setOrgs] = useState<Array<{ id: string; name: string }>>([]);
|
||||
// État local initialisé avec la valeur globale si elle est un UUID valide
|
||||
const [selectedOrg, setSelectedOrg] = useState<string | null>(
|
||||
isValidUUID(globalSelectedOrgId) ? globalSelectedOrgId : null
|
||||
(globalSelectedOrgId && isValidUUID(globalSelectedOrgId)) ? globalSelectedOrgId : null
|
||||
);
|
||||
|
||||
const { data, isLoading, isFetching } = useSalaries(page, limit, query, selectedOrg, isDemoMode);
|
||||
|
|
@ -377,7 +377,7 @@ export default function SalariesPage() {
|
|||
|
||||
// Synchronisation bidirectionnelle : global → local
|
||||
useEffect(() => {
|
||||
if (meData?.is_staff && isValidUUID(globalSelectedOrgId)) {
|
||||
if (meData?.is_staff && globalSelectedOrgId && isValidUUID(globalSelectedOrgId)) {
|
||||
setSelectedOrg(globalSelectedOrgId);
|
||||
}
|
||||
}, [globalSelectedOrgId, meData?.is_staff]);
|
||||
|
|
|
|||
|
|
@ -196,7 +196,7 @@ export default function SignaturesElectroniques() {
|
|||
// État pour le sélecteur d'organisation (staff uniquement)
|
||||
// Initialisé avec la valeur globale si elle est un UUID valide
|
||||
const [selectedOrgId, setSelectedOrgId] = useState<string>(
|
||||
isValidUUID(globalSelectedOrgId) ? globalSelectedOrgId : ""
|
||||
(globalSelectedOrgId && isValidUUID(globalSelectedOrgId)) ? globalSelectedOrgId : ""
|
||||
);
|
||||
|
||||
// Référence pour le conteneur DocuSeal
|
||||
|
|
@ -235,7 +235,7 @@ export default function SignaturesElectroniques() {
|
|||
|
||||
// Synchronisation bidirectionnelle : global → local
|
||||
useEffect(() => {
|
||||
if (userInfo?.isStaff && isValidUUID(globalSelectedOrgId)) {
|
||||
if (userInfo?.isStaff && globalSelectedOrgId && isValidUUID(globalSelectedOrgId)) {
|
||||
setSelectedOrgId(globalSelectedOrgId);
|
||||
}
|
||||
}, [globalSelectedOrgId, userInfo?.isStaff]);
|
||||
|
|
|
|||
|
|
@ -385,7 +385,7 @@ export default function VirementsPage() {
|
|||
const [copiedField, setCopiedField] = useState<null | 'iban' | 'bic' | 'benef'>(null);
|
||||
// État local initialisé avec la valeur globale si elle est un UUID valide
|
||||
const [selectedOrgId, setSelectedOrgId] = useState<string>(
|
||||
isValidUUID(globalSelectedOrgId) ? globalSelectedOrgId : ""
|
||||
(globalSelectedOrgId && isValidUUID(globalSelectedOrgId)) ? globalSelectedOrgId : ""
|
||||
);
|
||||
const [pdfModalOpen, setPdfModalOpen] = useState(false);
|
||||
const [pdfUrl, setPdfUrl] = useState<string>("");
|
||||
|
|
@ -414,7 +414,7 @@ export default function VirementsPage() {
|
|||
|
||||
// Synchronisation bidirectionnelle : global → local
|
||||
useEffect(() => {
|
||||
if (userInfo?.isStaff && isValidUUID(globalSelectedOrgId)) {
|
||||
if (userInfo?.isStaff && globalSelectedOrgId && isValidUUID(globalSelectedOrgId)) {
|
||||
setSelectedOrgId(globalSelectedOrgId);
|
||||
}
|
||||
}, [globalSelectedOrgId, userInfo?.isStaff]);
|
||||
|
|
|
|||
|
|
@ -607,7 +607,7 @@ export default function VosDocumentsPage() {
|
|||
const [activeTab, setActiveTab] = React.useState('comptables');
|
||||
// État local initialisé avec la valeur globale si elle est un UUID valide
|
||||
const [selectedOrgId, setSelectedOrgId] = React.useState<string>(
|
||||
isValidUUID(globalSelectedOrgId) ? globalSelectedOrgId : ''
|
||||
(globalSelectedOrgId && isValidUUID(globalSelectedOrgId)) ? globalSelectedOrgId : ''
|
||||
);
|
||||
const [isStaff, setIsStaff] = React.useState(false);
|
||||
const [isCheckingStaff, setIsCheckingStaff] = React.useState(true);
|
||||
|
|
@ -668,7 +668,7 @@ export default function VosDocumentsPage() {
|
|||
|
||||
// Synchronisation bidirectionnelle : global → local
|
||||
React.useEffect(() => {
|
||||
if (isStaff && isValidUUID(globalSelectedOrgId)) {
|
||||
if (isStaff && globalSelectedOrgId && isValidUUID(globalSelectedOrgId)) {
|
||||
setSelectedOrgId(globalSelectedOrgId);
|
||||
}
|
||||
}, [globalSelectedOrgId, isStaff]);
|
||||
|
|
|
|||
|
|
@ -164,7 +164,7 @@ export async function POST(req: NextRequest) {
|
|||
|
||||
// 6b) If manual mode, insert payslip links
|
||||
if (selectionMode === 'manual' && payslip_ids && payslip_ids.length > 0) {
|
||||
const links = payslip_ids.map(payslip_id => ({
|
||||
const links = payslip_ids.map((payslip_id: string) => ({
|
||||
salary_transfer_id: newTransfer.id,
|
||||
payslip_id,
|
||||
custom_amount: custom_amounts?.[payslip_id] || null,
|
||||
|
|
|
|||
|
|
@ -1565,6 +1565,9 @@ export default function SalaryTransfersGrid({
|
|||
num_appel: "",
|
||||
total_net: "",
|
||||
notes: "",
|
||||
selection_mode: "period",
|
||||
payslip_ids: [],
|
||||
custom_amounts: {},
|
||||
});
|
||||
}}
|
||||
className="px-4 py-2 text-slate-700 border rounded-lg hover:bg-slate-50 transition-colors"
|
||||
|
|
|
|||
Loading…
Reference in a new issue