Compare commits

...

2 Commits

Author SHA1 Message Date
a910320b16 delted unused imports 2025-08-16 21:03:35 +02:00
b8d609ac28 Added export button, but without any function
- The function comes later...
2025-08-16 21:03:12 +02:00
2 changed files with 22 additions and 6 deletions

View File

@@ -9,7 +9,6 @@ import {
removeEntries, removeEntries,
saveRow, saveRow,
resetData, resetData,
getVitals,
} from "./services/database.js"; } from "./services/database.js";
import { generateToken, authenticate } from "./services/tokenService.js"; import { generateToken, authenticate } from "./services/tokenService.js";
env.config(); env.config();

View File

@@ -1,10 +1,11 @@
import React from "react"; import React, { useEffect } from "react";
import { Sheet, WholeWord, Search, DatabaseZap } from "lucide-react"; import { Sheet, WholeWord, Search, DatabaseZap, FileDown } from "lucide-react";
import { useState } from "react"; import { useState } from "react";
import ImportGUI from "./ImportGUI"; import ImportGUI from "./ImportGUI";
import Cookies from "js-cookie"; import Cookies from "js-cookie";
import { removeSelection } from "../utils/tableActions"; import { removeSelection } from "../utils/tableActions";
import DangerZone from "./DangerZone"; import DangerZone from "./DangerZone";
import { myToast } from "../utils/toastify";
type SubHeaderAdminProps = { type SubHeaderAdminProps = {
setFiles: (files: File[]) => void; setFiles: (files: File[]) => void;
@@ -22,6 +23,13 @@ const SubHeaderAdmin: React.FC<SubHeaderAdminProps> = ({
}) => { }) => {
const [showImport, setShowImport] = useState(false); const [showImport, setShowImport] = useState(false);
const [showDanger, setShowDanger] = useState(false); const [showDanger, setShowDanger] = useState(false);
const [exporting, setExporting] = useState(false);
useEffect(() => {
if (exporting) {
myToast("Export in Bearbeitung...", "info");
}
}, [exporting]);
return ( return (
<> <>
@@ -62,6 +70,17 @@ const SubHeaderAdmin: React.FC<SubHeaderAdminProps> = ({
/> />
<span className="whitespace-nowrap">Losnummern importieren</span> <span className="whitespace-nowrap">Losnummern importieren</span>
</button> </button>
<button
onClick={() => setExporting(true)}
type="button"
className="group inline-flex items-center gap-2 rounded-md border border-gray-300 bg-white px-3.5 py-2 text-sm font-medium text-gray-700 shadow-sm transition hover:bg-gray-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-blue-500/60 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50"
>
<FileDown
className="h-4 w-4 shrink-0 text-gray-500 transition group-hover:text-gray-600"
strokeWidth={1.75}
/>
<span className="whitespace-nowrap">Losnummern exportieren</span>
</button>
<button <button
onClick={() => { onClick={() => {
removeSelection(Cookies.get("token") || ""); removeSelection(Cookies.get("token") || "");
@@ -99,9 +118,7 @@ const SubHeaderAdmin: React.FC<SubHeaderAdminProps> = ({
/> />
)} )}
{showDanger && ( {showDanger && <DangerZone onClose={() => setShowDanger(false)} />}
<DangerZone onClose={() => setShowDanger(false)} />
)}
</> </>
); );
}; };