diff --git a/src/views/Editor/DataEditor.vue b/src/views/Editor/DataEditor.vue index 46b0e82..3133f4e 100644 --- a/src/views/Editor/DataEditor.vue +++ b/src/views/Editor/DataEditor.vue @@ -22,6 +22,7 @@ import { type Row as DataRow, type Column as DataColumn, } from 'src/types/data' +import DataEditorModal from './DataEditorModal.vue' import ImageEditor from './ImageEditor.vue' import { type EditingRow } from './types' @@ -37,6 +38,8 @@ const editingRows = ref([]) const expandedRows = ref([]) const editingImage = ref(false) const editingImageRow = ref(null as EditingRow | null) +const editingRow = ref(false) +const editingRowData = ref(null as EditingRow | null) const columnsByKey = computed(() => Object.assign({}, ...props.columns.map(c => ({[c.name]: c})))) const columnsPrimary = computed(() => props.columns.filter(column => !column.secondary)) const selectedTemplate = ref(null as DataRow | null) // simply used to reset dropdown when selected @@ -86,6 +89,12 @@ const onEditImage = (event: Event, slotProps: EditingRow) => { editingImageRow.value = slotProps } +const onEditRow = (event: Event, slotProps: EditingRow) => { + event.preventDefault() + editingRow.value = true + editingRowData.value = slotProps +} + const onRemoveImage = (event: Event, slotProps: EditingRow) => { event.preventDefault() const row = { ...model.value[slotProps.index] } as any @@ -96,6 +105,7 @@ const onRemoveImage = (event: Event, slotProps: EditingRow) => { let rows = editingRows.value rows.splice(indexOfEditing, 1) editingRows.value = rows + emits('dirty') } } @@ -110,8 +120,14 @@ const onSaveImage = (image: string) => { let rows = editingRows.value rows.splice(indexOfEditing, 1) editingRows.value = rows + emits('dirty') } } + +const onSaveRow = (row: DataRow, editingRow: EditingRow) => { + model.value[editingRow.index] = row + emits('dirty') +}