update
This commit is contained in:
@@ -76,7 +76,7 @@ const BookStackRecentWidget: React.FC = () => {
|
||||
retry: 1,
|
||||
});
|
||||
|
||||
const configured = data?.configured ?? true;
|
||||
const configured = data?.configured ?? false;
|
||||
const pages = (data?.data ?? []).slice(0, 5);
|
||||
|
||||
if (!configured) {
|
||||
|
||||
@@ -69,6 +69,11 @@ const BookStackSearchWidget: React.FC = () => {
|
||||
const [searching, setSearching] = useState(false);
|
||||
const debounceRef = useRef<ReturnType<typeof setTimeout> | null>(null);
|
||||
const latestQueryRef = useRef<string>('');
|
||||
const isMountedRef = useRef(true);
|
||||
|
||||
useEffect(() => {
|
||||
return () => { isMountedRef.current = false; };
|
||||
}, []);
|
||||
|
||||
const { data, isLoading: configLoading } = useQuery({
|
||||
queryKey: ['bookstack-recent'],
|
||||
@@ -96,15 +101,15 @@ const BookStackSearchWidget: React.FC = () => {
|
||||
debounceRef.current = setTimeout(async () => {
|
||||
try {
|
||||
const response = await bookstackApi.search(thisQuery);
|
||||
if (latestQueryRef.current === thisQuery) {
|
||||
if (isMountedRef.current && latestQueryRef.current === thisQuery) {
|
||||
setResults(response.data);
|
||||
}
|
||||
} catch {
|
||||
if (latestQueryRef.current === thisQuery) {
|
||||
if (isMountedRef.current && latestQueryRef.current === thisQuery) {
|
||||
setResults([]);
|
||||
}
|
||||
} finally {
|
||||
if (latestQueryRef.current === thisQuery) {
|
||||
if (isMountedRef.current && latestQueryRef.current === thisQuery) {
|
||||
setSearching(false);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@ function DashboardLayoutInner({ children }: DashboardLayoutProps) {
|
||||
}
|
||||
|
||||
const sidebarWidth = sidebarCollapsed ? DRAWER_WIDTH_COLLAPSED : DRAWER_WIDTH;
|
||||
const chatWidth = chatPanelOpen ? 360 : 60;
|
||||
const chatWidth = chatPanelOpen ? 360 : 64;
|
||||
|
||||
return (
|
||||
<Box sx={{ display: 'flex', height: '100vh', overflow: 'hidden' }}>
|
||||
|
||||
@@ -128,14 +128,7 @@ const EventQuickAddWidget: React.FC = () => {
|
||||
<Typography variant="h6">Veranstaltung</Typography>
|
||||
</Box>
|
||||
|
||||
{false ? (
|
||||
<Box>
|
||||
<Skeleton variant="rectangular" height={40} sx={{ mb: 1.5, borderRadius: 1 }} />
|
||||
<Skeleton variant="rectangular" height={40} sx={{ mb: 1.5, borderRadius: 1 }} />
|
||||
<Skeleton variant="rectangular" height={40} sx={{ borderRadius: 1 }} />
|
||||
</Box>
|
||||
) : (
|
||||
<Box component="form" onSubmit={handleSubmit} sx={{ display: 'flex', flexDirection: 'column', gap: 1.5 }}>
|
||||
<Box component="form" onSubmit={handleSubmit} sx={{ display: 'flex', flexDirection: 'column', gap: 1.5 }}>
|
||||
<TextField
|
||||
fullWidth
|
||||
size="small"
|
||||
@@ -207,7 +200,6 @@ const EventQuickAddWidget: React.FC = () => {
|
||||
{mutation.isPending ? 'Wird erstellt…' : 'Erstellen'}
|
||||
</Button>
|
||||
</Box>
|
||||
)}
|
||||
</CardContent>
|
||||
</Card>
|
||||
);
|
||||
|
||||
@@ -75,6 +75,7 @@ const VehicleBookingQuickAddWidget: React.FC = () => {
|
||||
setEnde(fresh.ende);
|
||||
setBeschreibung('');
|
||||
queryClient.invalidateQueries({ queryKey: ['bookings'] });
|
||||
queryClient.invalidateQueries({ queryKey: ['upcoming-vehicle-bookings'] });
|
||||
},
|
||||
onError: () => {
|
||||
showError('Fahrzeugbuchung konnte nicht erstellt werden');
|
||||
|
||||
Reference in New Issue
Block a user