überarbeitet: 300 neue tasks von gemini erzeugen lassen. dazu event types "Konfirmation" und "Schulabschluss" ergänzt. alles in Kollektionen gepackt und die seeder angepasst.
Des weiteren: neue Blogartikel und howto-Artikel von ChatGPT. Das QR-Code-Canvas funktioniert nun noch besser. die Layouts sehen besser aus. Der PaketSeeder enthält nun die Paddle Sandbox ProductIDs
This commit is contained in:
@@ -53,6 +53,11 @@ export function DesignerCanvas({
|
||||
const pendingDisposeRef = React.useRef<number | null>(null);
|
||||
const pendingTimeoutRef = React.useRef<number | null>(null);
|
||||
const lastRenderSignatureRef = React.useRef<string | null>(null);
|
||||
const requestedSelectionRef = React.useRef<string | null>(selectedId);
|
||||
|
||||
React.useEffect(() => {
|
||||
requestedSelectionRef.current = selectedId;
|
||||
}, [selectedId]);
|
||||
|
||||
const destroyCanvas = React.useCallback((canvas: fabric.Canvas | null) => {
|
||||
if (!canvas) {
|
||||
@@ -207,13 +212,19 @@ export function DesignerCanvas({
|
||||
onSelect(null);
|
||||
return;
|
||||
}
|
||||
requestedSelectionRef.current = active.elementId ?? null;
|
||||
onSelect(active.elementId);
|
||||
};
|
||||
|
||||
const handleSelectionCleared = () => {
|
||||
const handleSelectionCleared = (event?: fabric.IEvent<MouseEvent>) => {
|
||||
if (readOnly) {
|
||||
return;
|
||||
}
|
||||
const triggeredByPointer = Boolean(event?.e);
|
||||
if (!triggeredByPointer && requestedSelectionRef.current) {
|
||||
return;
|
||||
}
|
||||
requestedSelectionRef.current = null;
|
||||
onSelect(null);
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user