Refactor DbKeyDetailTab to use DbKeyItemEdit component for editing key items

This commit is contained in:
Stela Augustinova
2025-12-18 09:15:56 +01:00
parent 07117c90d1
commit 28712b205f
2 changed files with 59 additions and 2 deletions

View File

@@ -0,0 +1,57 @@
<script lang="ts">
import _ from 'lodash';
import DbKeyValueDetail from './DbKeyValueDetail.svelte';
export let dbKeyFields;
export let item;
export let onChangeItem = null;
export let keyColumn = null;
$: console.log('DbKeyItemEdit', { item, dbKeyFields, keyColumn, onChangeItem: !!onChangeItem });
function getValueAsString(value) {
if (value === null || value === undefined) return undefined;
if (typeof value === 'string') return value;
if (typeof value === 'number') return String(value);
return JSON.stringify(value);
}
</script>
<div class="props">
{#each dbKeyFields as column}
<div class="field-wrapper">
<DbKeyValueDetail
value={getValueAsString(item?.[column.name])}
columnTitle={_.startCase(column.name)}
onChangeValue={onChangeItem && column.name !== keyColumn
? value => {
onChangeItem?.({
...item,
[column.name]: value,
});
}
: null}
/>
</div>
{/each}
</div>
<style>
.props {
flex: 1;
display: flex;
flex-direction: row;
gap: 10px;
padding: 10px;
overflow: hidden;
}
.field-wrapper {
flex: 1;
min-width: 0;
display: flex;
flex-direction: column;
overflow: hidden;
max-height: 100px;
}
</style>

View File

@@ -29,7 +29,7 @@
import { showModal } from '../modals/modalTools'; import { showModal } from '../modals/modalTools';
import InputTextModal from '../modals/InputTextModal.svelte'; import InputTextModal from '../modals/InputTextModal.svelte';
import _ from 'lodash'; import _ from 'lodash';
import DbKeyItemDetail from '../dbkeyvalue/DbKeyItemDetail.svelte'; import DbKeyItemEdit from '../dbkeyvalue/DbKeyItemEdit.svelte';
import DbKeyAddItemModal from '../modals/DbKeyAddItemModal.svelte'; import DbKeyAddItemModal from '../modals/DbKeyAddItemModal.svelte';
import ErrorMessageModal from '../modals/ErrorMessageModal.svelte'; import ErrorMessageModal from '../modals/ErrorMessageModal.svelte';
import { changeTab } from '../utility/common'; import { changeTab } from '../utility/common';
@@ -304,7 +304,7 @@
/> />
</svelte:fragment> </svelte:fragment>
<svelte:fragment slot="2"> <svelte:fragment slot="2">
<DbKeyItemDetail <DbKeyItemEdit
dbKeyFields={keyInfo.type === 'hash' dbKeyFields={keyInfo.type === 'hash'
? keyInfo.keyType.dbKeyFields.filter(f => f.name === 'value') ? keyInfo.keyType.dbKeyFields.filter(f => f.name === 'value')
: keyInfo.keyType.dbKeyFields} : keyInfo.keyType.dbKeyFields}