Redirect to detail view of newly created record
This commit is contained in:
@@ -308,12 +308,13 @@ export const useViewState = <T extends { id?: string }>(
|
|||||||
}
|
}
|
||||||
|
|
||||||
const handleSave = async (data: T) => {
|
const handleSave = async (data: T) => {
|
||||||
|
let savedRecord
|
||||||
if (data.id) {
|
if (data.id) {
|
||||||
await updateRecord(data.id, data)
|
savedRecord = await updateRecord(data.id, data)
|
||||||
} else {
|
} else {
|
||||||
await createRecord(data)
|
savedRecord = await createRecord(data)
|
||||||
}
|
}
|
||||||
showDetail(currentRecord.value!)
|
return savedRecord
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref, computed, onMounted, watch } from 'vue'
|
import { ref, computed, onMounted, watch, nextTick } from 'vue'
|
||||||
import { useRoute, useRouter } from 'vue-router'
|
import { useRoute, useRouter } from 'vue-router'
|
||||||
import { useApi } from '@/composables/useApi'
|
import { useApi } from '@/composables/useApi'
|
||||||
import { useFields, useViewState } from '@/composables/useFieldViews'
|
import { useFields, useViewState } from '@/composables/useFieldViews'
|
||||||
@@ -111,8 +111,13 @@ const handleDelete = async (rows: any[]) => {
|
|||||||
|
|
||||||
const handleSaveRecord = async (data: any) => {
|
const handleSaveRecord = async (data: any) => {
|
||||||
try {
|
try {
|
||||||
await handleSave(data)
|
const savedRecord = await handleSave(data)
|
||||||
router.push(`/app/objects/${objectApiName.value}/${currentRecord.value?.id || data.id}/detail`)
|
if (savedRecord?.id) {
|
||||||
|
router.push(`/app/objects/${objectApiName.value}/${savedRecord.id}/detail`)
|
||||||
|
} else {
|
||||||
|
// Fallback to list if no ID available
|
||||||
|
router.push(`/app/objects/${objectApiName.value}/`)
|
||||||
|
}
|
||||||
} catch (e: any) {
|
} catch (e: any) {
|
||||||
error.value = e.message || 'Failed to save record'
|
error.value = e.message || 'Failed to save record'
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user