Remember previous query when opening transform modal again

This commit is contained in:
Jos de Jong 2020-09-02 11:08:05 +02:00
parent 350969638c
commit 01579dc115
3 changed files with 18 additions and 6 deletions

View File

@ -1,7 +1,7 @@
<svelte:options immutable={true} /> <svelte:options immutable={true} />
<script> <script>
import { getContext, setContext, onDestroy } from 'svelte' import { getContext } from 'svelte'
import Select from 'svelte-select' import Select from 'svelte-select'
import Header from './Header.svelte' import Header from './Header.svelte'
import { getNestedPaths } from '../../utils/arrayUtils.js' import { getNestedPaths } from '../../utils/arrayUtils.js'
@ -9,7 +9,7 @@
import { stringifyPath } from '../../utils/pathUtils.js' import { stringifyPath } from '../../utils/pathUtils.js'
import { sortArray, sortObjectKeys } from '../../logic/sort.js' import { sortArray, sortObjectKeys } from '../../logic/sort.js'
import { sortModalState } from './sortModalState.js' import { sortModalState } from './sortModalState.js'
import { compileJSONPointer } from '../../utils/jsonPointer'; import { compileJSONPointer } from '../../utils/jsonPointer'
export let id export let id
export let json export let json
@ -17,8 +17,8 @@ import { compileJSONPointer } from '../../utils/jsonPointer';
export let onSort export let onSort
const {close} = getContext('simple-modal') const {close} = getContext('simple-modal')
const stateId = `${id}:${compileJSONPointer(rootPath)}`
let stateId = `${id}:${compileJSONPointer(rootPath)}`
$: json $: json
$: jsonIsArray = Array.isArray(json) $: jsonIsArray = Array.isArray(json)
$: paths = jsonIsArray ? getNestedPaths(json) : undefined $: paths = jsonIsArray ? getNestedPaths(json) : undefined

View File

@ -2,17 +2,22 @@
<script> <script>
import { getContext } from 'svelte' import { getContext } from 'svelte'
import { compileJSONPointer } from '../../utils/jsonPointer'; import { compileJSONPointer } from '../../utils/jsonPointer'
import Header from './Header.svelte' import Header from './Header.svelte'
import { transformModalState } from './transformModalState.js'
export let id export let id
export let json export let json
export let rootPath export let rootPath
export let onTransform export let onTransform
const DEFAULT_QUERY = 'function query (data) {\n return data\n}'
const {close} = getContext('simple-modal') const {close} = getContext('simple-modal')
let query = 'function query (data) {\n return data\n}' let stateId = `${id}:${compileJSONPointer(rootPath)}`
let query = transformModalState[stateId]?.query || DEFAULT_QUERY
let previewHasError = false let previewHasError = false
let preview = '' let preview = ''
@ -49,7 +54,13 @@ import { compileJSONPointer } from '../../utils/jsonPointer';
value: jsonTransformed value: jsonTransformed
} }
]) ])
// remember the selected values for the next time we open the SortModal
// just in memory, not persisted
transformModalState[stateId] = {
query
}
close() close()
} catch (err) { } catch (err) {
// this should never occur since we can only press the Transform // this should never occur since we can only press the Transform

View File

@ -0,0 +1 @@
export const transformModalState = {}