Working on Wpt save after edition.
This commit is contained in:
parent
c8a8622c91
commit
156fefae3b
|
@ -33,6 +33,7 @@
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@capacitor/cli": "^3.4.3",
|
"@capacitor/cli": "^3.4.3",
|
||||||
"@testing-library/jest-dom": "^5.16.2",
|
"@testing-library/jest-dom": "^5.16.2",
|
||||||
|
"@types/lodash": "^4.14.191",
|
||||||
"@types/memoizee": "^0.4.8",
|
"@types/memoizee": "^0.4.8",
|
||||||
"jsdom": ">19.0.0",
|
"jsdom": ">19.0.0",
|
||||||
"solid-testing-library": ">0.3.0",
|
"solid-testing-library": ">0.3.0",
|
||||||
|
@ -1425,6 +1426,12 @@
|
||||||
"pretty-format": "^29.0.0"
|
"pretty-format": "^29.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@types/lodash": {
|
||||||
|
"version": "4.14.191",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.191.tgz",
|
||||||
|
"integrity": "sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"node_modules/@types/memoizee": {
|
"node_modules/@types/memoizee": {
|
||||||
"version": "0.4.8",
|
"version": "0.4.8",
|
||||||
"resolved": "https://registry.npmjs.org/@types/memoizee/-/memoizee-0.4.8.tgz",
|
"resolved": "https://registry.npmjs.org/@types/memoizee/-/memoizee-0.4.8.tgz",
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@capacitor/cli": "^3.4.3",
|
"@capacitor/cli": "^3.4.3",
|
||||||
"@testing-library/jest-dom": "^5.16.2",
|
"@testing-library/jest-dom": "^5.16.2",
|
||||||
|
"@types/lodash": "^4.14.191",
|
||||||
"@types/memoizee": "^0.4.8",
|
"@types/memoizee": "^0.4.8",
|
||||||
"jsdom": ">19.0.0",
|
"jsdom": ">19.0.0",
|
||||||
"solid-testing-library": ">0.3.0",
|
"solid-testing-library": ">0.3.0",
|
||||||
|
|
|
@ -12,6 +12,7 @@ import GeoJSON from 'ol/format/GeoJSON';
|
||||||
import { setBranch, tree } from '../map';
|
import { setBranch, tree } from '../map';
|
||||||
import { Feature } from 'ol';
|
import { Feature } from 'ol';
|
||||||
import { useI18n } from '@solid-primitives/i18n';
|
import { useI18n } from '@solid-primitives/i18n';
|
||||||
|
import { cloneDeep } from 'lodash';
|
||||||
import Dialog from '../dialog';
|
import Dialog from '../dialog';
|
||||||
import { Box, Button, Grid, Stack, TextField } from '@suid/material';
|
import { Box, Button, Grid, Stack, TextField } from '@suid/material';
|
||||||
|
|
||||||
|
@ -29,6 +30,7 @@ export const Wpt: Component<Props> = ({ vectorSource, wptId: wptId }) => {
|
||||||
const [t, { add, locale, dict }] = useI18n();
|
const [t, { add, locale, dict }] = useI18n();
|
||||||
|
|
||||||
const [wpt, setWpt] = createSignal<Wpt>();
|
const [wpt, setWpt] = createSignal<Wpt>();
|
||||||
|
const [editedWpt, setEditedWpt] = createSignal<Wpt>();
|
||||||
const [dispatchId, setDispatchId] = createSignal<number>(-1);
|
const [dispatchId, setDispatchId] = createSignal<number>(-1);
|
||||||
|
|
||||||
const getTitle = () => {
|
const getTitle = () => {
|
||||||
|
@ -77,6 +79,7 @@ export const Wpt: Component<Props> = ({ vectorSource, wptId: wptId }) => {
|
||||||
|
|
||||||
const edit = () => {
|
const edit = () => {
|
||||||
setMode(Mode.EDIT);
|
setMode(Mode.EDIT);
|
||||||
|
setEditedWpt(cloneDeep(wpt()));
|
||||||
};
|
};
|
||||||
|
|
||||||
createEffect(() => {
|
createEffect(() => {
|
||||||
|
@ -115,6 +118,20 @@ export const Wpt: Component<Props> = ({ vectorSource, wptId: wptId }) => {
|
||||||
setMode(Mode.CLOSED);
|
setMode(Mode.CLOSED);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const saveHandler = () => {
|
||||||
|
console.log({
|
||||||
|
caller: 'Wpt / saveHandler',
|
||||||
|
wptId,
|
||||||
|
editedWpt: editedWpt(),
|
||||||
|
});
|
||||||
|
// const newWpt = wpt();
|
||||||
|
// if (newWpt) {
|
||||||
|
// newWpt.name = name.value;
|
||||||
|
// }
|
||||||
|
dispatch({ action: 'putWpt', params: { id: wptId, wpt: editedWpt() } });
|
||||||
|
setMode(Mode.CLOSED);
|
||||||
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Dialog
|
<Dialog
|
||||||
open={mode() === Mode.EDIT}
|
open={mode() === Mode.EDIT}
|
||||||
|
@ -125,15 +142,17 @@ export const Wpt: Component<Props> = ({ vectorSource, wptId: wptId }) => {
|
||||||
<div>
|
<div>
|
||||||
<TextField
|
<TextField
|
||||||
required
|
required
|
||||||
id='name'
|
|
||||||
label={t('name')}
|
label={t('name')}
|
||||||
defaultValue={wpt()?.name}
|
defaultValue={wpt()?.name}
|
||||||
|
onChange={(event: any, value: string) => {
|
||||||
|
setEditedWpt({ ...editedWpt(), name: value });
|
||||||
|
}}
|
||||||
/>
|
/>
|
||||||
<Stack spacing={2} direction='row' sx={{ marginTop: '20px' }}>
|
<Stack spacing={2} direction='row' sx={{ marginTop: '20px' }}>
|
||||||
<Button variant='outlined' color='secondary' onClick={closeHandler}>
|
<Button variant='outlined' color='secondary' onClick={closeHandler}>
|
||||||
{t('cancel')}
|
{t('cancel')}
|
||||||
</Button>
|
</Button>
|
||||||
<Button variant='contained' color='success'>
|
<Button variant='contained' color='success' onClick={saveHandler}>
|
||||||
{t('save')}
|
{t('save')}
|
||||||
</Button>
|
</Button>
|
||||||
</Stack>
|
</Stack>
|
||||||
|
|
|
@ -11,7 +11,7 @@ const methods = {
|
||||||
|
|
||||||
const changeHandler = async (change: any) => {
|
const changeHandler = async (change: any) => {
|
||||||
console.log({ caller: 'ChangeHandler', change });
|
console.log({ caller: 'ChangeHandler', change });
|
||||||
const { id } = change.id;
|
const { id } = change;
|
||||||
if (!globalThis.watches) {
|
if (!globalThis.watches) {
|
||||||
globalThis.watches = new Map();
|
globalThis.watches = new Map();
|
||||||
}
|
}
|
||||||
|
@ -19,7 +19,7 @@ const changeHandler = async (change: any) => {
|
||||||
if (params) {
|
if (params) {
|
||||||
const { method, _dispatchId, id, ...otherParams } = params;
|
const { method, _dispatchId, id, ...otherParams } = params;
|
||||||
const returnValue = await methods[<keyof typeof methods>method](params);
|
const returnValue = await methods[<keyof typeof methods>method](params);
|
||||||
if (false) {
|
if (returnValue) {
|
||||||
returnAgain(_dispatchId, returnValue);
|
returnAgain(_dispatchId, returnValue);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,9 +43,22 @@ export const putNewWpt = async (id?: IdGpx | IdWpt) => {
|
||||||
return finalId as IdWpt;
|
return finalId as IdWpt;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const putWpt = async (params: any) => {
|
||||||
|
console.log({ caller: 'putWpt', params });
|
||||||
|
const { id, wpt } = params;
|
||||||
|
await put(
|
||||||
|
id,
|
||||||
|
'wpt',
|
||||||
|
(_) => {
|
||||||
|
return wpt;
|
||||||
|
},
|
||||||
|
wpt
|
||||||
|
);
|
||||||
|
return id;
|
||||||
|
};
|
||||||
|
|
||||||
export const getWpt = async (params: any) => {
|
export const getWpt = async (params: any) => {
|
||||||
const { id } = params;
|
const { id } = params;
|
||||||
const doc = await get(id);
|
const doc = await get(id);
|
||||||
return doc.doc;
|
return doc.doc;
|
||||||
};
|
};
|
||||||
|
|
|
@ -11,7 +11,7 @@ import {
|
||||||
} from '../db/gpx';
|
} from '../db/gpx';
|
||||||
import { getTrk, putNewTrk } from '../db/trk';
|
import { getTrk, putNewTrk } from '../db/trk';
|
||||||
import { getTrkseg } from '../db/trkseg';
|
import { getTrkseg } from '../db/trkseg';
|
||||||
import { getWpt } from '../db/wpt';
|
import { getWpt, putWpt } from '../db/wpt';
|
||||||
|
|
||||||
//const self = globalThis as unknown as WorkerGlobalScope;
|
//const self = globalThis as unknown as WorkerGlobalScope;
|
||||||
|
|
||||||
|
@ -31,6 +31,8 @@ onmessage = async function (e) {
|
||||||
getTrkseg,
|
getTrkseg,
|
||||||
getWpt,
|
getWpt,
|
||||||
|
|
||||||
|
putWpt,
|
||||||
|
|
||||||
getAndWatch,
|
getAndWatch,
|
||||||
cancelWatch,
|
cancelWatch,
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue