feat : use manual save
This commit is contained in:
@@ -7,7 +7,7 @@ import { closestCenter, DndContext, KeyboardSensor, PointerSensor, useSensor, us
|
||||
import { arrayMove, SortableContext, sortableKeyboardCoordinates, useSortable, verticalListSortingStrategy } from "@dnd-kit/sortable";
|
||||
import { CSS } from "@dnd-kit/utilities";
|
||||
import { saveWeaponSection } from "@/app/admin/actions";
|
||||
import { AutosaveStatus } from "@/components/admin/autosave-status";
|
||||
import { SaveStatus } from "@/components/admin/save-status";
|
||||
import { DeleteConfirmationDialog } from "@/components/admin/ui/delete-confirmation-dialog";
|
||||
import { WeaponSelect } from "@/components/admin/ui/catalog-select";
|
||||
import { Button } from "@/components/ui/button";
|
||||
@@ -16,7 +16,7 @@ import { Field, FieldGroup, FieldLabel } from "@/components/ui/field";
|
||||
import { ClearableInput as Input } from "@/components/admin/ui/clearable-input";
|
||||
import { Textarea } from "@/components/ui/textarea";
|
||||
import { ToggleGroup, ToggleGroupItem } from "@/components/ui/toggle-group";
|
||||
import { useAutosave } from "@/hooks/use-autosave";
|
||||
import { useManualSave } from "@/hooks/use-manual-save";
|
||||
import { adminDraftKey } from "@/lib/editor/local-draft";
|
||||
import { weaponSectionSchema } from "@/lib/guides/schemas";
|
||||
import { supportsWeaponType } from "@/lib/catalog/lunaris";
|
||||
@@ -129,7 +129,7 @@ export function WeaponEditor({ guide, weapons, characters, initial }: EditorBase
|
||||
const weaponIssue = (...path: (string | number)[]) =>
|
||||
!validation.success && hasIssuePrefix(validation.error.issues, ...path);
|
||||
const localDraft = { note, groups, activeGroupIndex };
|
||||
const autosave = useAutosave({
|
||||
const manualSave = useManualSave({
|
||||
guideId: guide.id,
|
||||
scope: "weapon",
|
||||
value,
|
||||
@@ -161,7 +161,7 @@ export function WeaponEditor({ guide, weapons, characters, initial }: EditorBase
|
||||
<CardTitle>Weapon tier list</CardTitle>
|
||||
<CardDescription>
|
||||
ลากเพื่อเรียงอาวุธจากดีที่สุดลงมา และกรอกเปอร์เซ็นต์อย่างน้อยหนึ่งช่อง
|
||||
ระบบจะบันทึกอัตโนมัติ
|
||||
กดปุ่มบันทึกเพื่อบันทึกการเปลี่ยนแปลง
|
||||
</CardDescription>
|
||||
</CardHeader>
|
||||
<CardContent className="flex flex-col gap-4">
|
||||
@@ -487,18 +487,19 @@ export function WeaponEditor({ guide, weapons, characters, initial }: EditorBase
|
||||
<PlusIcon data-icon="inline-start" />
|
||||
เพิ่มอาวุธ
|
||||
</Button>
|
||||
<AutosaveStatus
|
||||
state={autosave.state}
|
||||
conflictVersion={autosave.conflictVersion}
|
||||
canOverwrite={autosave.canOverwrite}
|
||||
onReloadLatest={autosave.reloadLatest}
|
||||
onOverwrite={autosave.overwrite}
|
||||
<SaveStatus
|
||||
state={manualSave.state}
|
||||
conflictVersion={manualSave.conflictVersion}
|
||||
canOverwrite={manualSave.canOverwrite}
|
||||
onReloadLatest={manualSave.reloadLatest}
|
||||
onOverwrite={manualSave.overwrite}
|
||||
issues={
|
||||
validation.success
|
||||
? []
|
||||
: formatGuideValidationIssues("weapon", validation.error.issues)
|
||||
}
|
||||
onSave={autosave.saveNow}
|
||||
onSave={manualSave.saveNow}
|
||||
canSave={manualSave.canSave}
|
||||
/>
|
||||
</CardFooter>
|
||||
</Card>
|
||||
|
||||
Reference in New Issue
Block a user