fix: load image fix setLoading function
This commit is contained in:
@@ -4,7 +4,7 @@
|
|||||||
import { browser } from "$app/environment";
|
import { browser } from "$app/environment";
|
||||||
import type { ImageCropResult } from "../lib/types/panel";
|
import type { ImageCropResult } from "../lib/types/panel";
|
||||||
import { ImageService } from "../lib/services/imageService";
|
import { ImageService } from "../lib/services/imageService";
|
||||||
import { uiStore } from "../stores/uiStore";
|
import { uiStore, setLoading } from "../stores/uiStore";
|
||||||
|
|
||||||
let Cropper: any = $state(undefined);
|
let Cropper: any = $state(undefined);
|
||||||
|
|
||||||
@@ -14,7 +14,7 @@
|
|||||||
Cropper = cropperModule.default;
|
Cropper = cropperModule.default;
|
||||||
|
|
||||||
// Импортируем стили только на клиенте
|
// Импортируем стили только на клиенте
|
||||||
await import("cropperjs/dist/cropper.css");
|
|
||||||
|
|
||||||
// Инициализируем cropper после загрузки
|
// Инициализируем cropper после загрузки
|
||||||
initializeCropper();
|
initializeCropper();
|
||||||
@@ -70,7 +70,7 @@
|
|||||||
try {
|
try {
|
||||||
isProcessing = true;
|
isProcessing = true;
|
||||||
errorMessage = null;
|
errorMessage = null;
|
||||||
uiStore.setLoading(true);
|
setLoading(true);
|
||||||
|
|
||||||
const canvas = cropper.getCroppedCanvas({
|
const canvas = cropper.getCroppedCanvas({
|
||||||
width: 320,
|
width: 320,
|
||||||
@@ -96,7 +96,7 @@
|
|||||||
console.error("Crop error:", error);
|
console.error("Crop error:", error);
|
||||||
} finally {
|
} finally {
|
||||||
isProcessing = false;
|
isProcessing = false;
|
||||||
uiStore.setLoading(false);
|
setLoading(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { onMount } from "svelte";
|
import { onMount } from "svelte";
|
||||||
import { uiStore } from "../stores/uiStore";
|
import { uiStore, setLoading, clearError, setCurrentStep } from "../stores/uiStore";
|
||||||
import { panelStore } from "../stores/panelStore";
|
import { panelStore } from "../stores/panelStore";
|
||||||
import { ImageService } from "../lib/services/imageService";
|
import { ImageService } from "../lib/services/imageService";
|
||||||
import { handleError } from "../lib/utils/errorHandler";
|
import { handleError } from "../lib/utils/errorHandler";
|
||||||
@@ -67,7 +67,7 @@
|
|||||||
|
|
||||||
async function handleFileUpload(file: File) {
|
async function handleFileUpload(file: File) {
|
||||||
try {
|
try {
|
||||||
uiStore.setLoading(true);
|
setLoading(true);
|
||||||
uiStore.clearError();
|
uiStore.clearError();
|
||||||
|
|
||||||
const result: ImageUploadResult = await imageService.handleFileUpload(file);
|
const result: ImageUploadResult = await imageService.handleFileUpload(file);
|
||||||
@@ -81,7 +81,7 @@
|
|||||||
} catch (error) {
|
} catch (error) {
|
||||||
errorMessage = handleError(error);
|
errorMessage = handleError(error);
|
||||||
} finally {
|
} finally {
|
||||||
uiStore.update((state) => ({ ...state, isLoading: false }));
|
setLoading(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -89,7 +89,7 @@
|
|||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
uiStore.setLoading(true);
|
setLoading(true);
|
||||||
uiStore.clearError();
|
uiStore.clearError();
|
||||||
|
|
||||||
const result: ImageUploadResult = await imageService.handlePasteUpload(e);
|
const result: ImageUploadResult = await imageService.handlePasteUpload(e);
|
||||||
@@ -103,7 +103,7 @@
|
|||||||
} catch (error) {
|
} catch (error) {
|
||||||
errorMessage = handleError(error);
|
errorMessage = handleError(error);
|
||||||
} finally {
|
} finally {
|
||||||
uiStore.update((state) => ({ ...state, isLoading: false }));
|
setLoading(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -113,14 +113,14 @@
|
|||||||
if (!urlInput.value.trim()) return;
|
if (!urlInput.value.trim()) return;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
uiStore.update((state) => ({ ...state, isLoading: true }));
|
setLoading(true);
|
||||||
uiStore.update((state) => ({ ...state, error: null }));
|
uiStore.clearError();
|
||||||
|
|
||||||
const result: ImageUploadResult = await imageService.handleUrlUpload(urlInput.value.trim());
|
const result: ImageUploadResult = await imageService.handleUrlUpload(urlInput.value.trim());
|
||||||
|
|
||||||
if (result.success && result.image) {
|
if (result.success && result.image) {
|
||||||
uploadedImage = result.image;
|
uploadedImage = result.image;
|
||||||
uiStore.update((state) => ({ ...state, currentStep: "crop" }));
|
uiStore.setCurrentStep("crop");
|
||||||
showUrlInput = false;
|
showUrlInput = false;
|
||||||
} else {
|
} else {
|
||||||
errorMessage = result.error || "Ошибка загрузки изображения";
|
errorMessage = result.error || "Ошибка загрузки изображения";
|
||||||
@@ -128,7 +128,7 @@
|
|||||||
} catch (error) {
|
} catch (error) {
|
||||||
errorMessage = handleError(error);
|
errorMessage = handleError(error);
|
||||||
} finally {
|
} finally {
|
||||||
uiStore.update((state) => ({ ...state, isLoading: false }));
|
setLoading(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -140,7 +140,7 @@
|
|||||||
uploadedImage = null;
|
uploadedImage = null;
|
||||||
errorMessage = null;
|
errorMessage = null;
|
||||||
showUrlInput = false;
|
showUrlInput = false;
|
||||||
uiStore.update((state) => ({ ...state, currentStep: "upload" }));
|
uiStore.setCurrentStep("upload");
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
import { onMount } from "svelte";
|
import { onMount } from "svelte";
|
||||||
import { browser } from "$app/environment";
|
import { browser } from "$app/environment";
|
||||||
import { panelStore, createEmptyPanel } from "../stores/panelStore";
|
import { panelStore, createEmptyPanel } from "../stores/panelStore";
|
||||||
import { uiStore } from "../stores/uiStore";
|
import { uiStore, setLoading } from "../stores/uiStore";
|
||||||
import { panelStorage } from "../lib/utils/panelStorage";
|
import { panelStorage } from "../lib/utils/panelStorage";
|
||||||
import { exportService } from "../lib/services/exportService";
|
import { exportService } from "../lib/services/exportService";
|
||||||
import type { Panel } from "../lib/types/panel";
|
import type { Panel } from "../lib/types/panel";
|
||||||
@@ -103,7 +103,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
uiStore.setLoading(true);
|
setLoading(true);
|
||||||
const result = await exportService.exportPanel(currentPanel);
|
const result = await exportService.exportPanel(currentPanel);
|
||||||
|
|
||||||
if (!result.success) {
|
if (!result.success) {
|
||||||
@@ -112,7 +112,7 @@
|
|||||||
} catch (error) {
|
} catch (error) {
|
||||||
errorMessage = error instanceof Error ? error.message : "Ошибка экспорта панели";
|
errorMessage = error instanceof Error ? error.message : "Ошибка экспорта панели";
|
||||||
} finally {
|
} finally {
|
||||||
uiStore.setLoading(false);
|
setLoading(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user