Public Access
fix: abort old loads, stale sync state, warn before unsaved edits are lost
This commit is contained in:
1 parent
cbafa3d540
commit
9ddc50f819
28 files changed
+753
-121
No files matched your search
@@ -10,6 +10,7 @@ import {Input} from '@/components/ui/input';
|
||||
import {Label} from '@/components/ui/label';
|
||||
import {hoursToMinutes, removeGame, toHours, updateManualGame} from '../utils/manualGames.js';
|
||||
import {MAX_PLATFORM_LENGTH} from '../utils/limits.js';
|
||||
import useUnsavedChanges, {discardChanges} from '../hooks/useUnsavedChanges.js';
|
||||
|
||||
/**
|
||||
* Platform and hours of a game added by hand, and removing it. Steam games get both from the sync.
|
||||
@@ -26,6 +27,7 @@ export default function ManualGameCard({game, onSaved}) {
|
||||
|
||||
const playtimeMinutes = hoursToMinutes(hours);
|
||||
const dirty = platform.trim() !== (game.platform ?? '') || playtimeMinutes !== game.playtimeMinutes;
|
||||
useUnsavedChanges(dirty);
|
||||
|
||||
const run = async (request, onOk) => {
|
||||
setBusy(true);
|
||||
@@ -52,6 +54,8 @@ export default function ManualGameCard({game, onSaved}) {
|
||||
|
||||
const remove = () => run(() => removeGame(game.appid), () => {
|
||||
toast.success(t('MANUAL_GAME.REMOVED'));
|
||||
// The game is gone, so are its unsaved edits on this page.
|
||||
discardChanges();
|
||||
navigate('/library', {replace: true});
|
||||
});
|
||||
|
||||
|
||||
Reference in new issue
Block a user