🐛 (share) Fix publicId null when publishing
This commit is contained in:
@ -172,37 +172,40 @@ export const TypebotProvider = ({
|
|||||||
typebot,
|
typebot,
|
||||||
])
|
])
|
||||||
|
|
||||||
const saveTypebot = useCallback(async () => {
|
const saveTypebot = useCallback(
|
||||||
if (!localTypebot || !typebot) return
|
async (updates?: Partial<Typebot>) => {
|
||||||
const typebotToSave = { ...localTypebot }
|
if (!localTypebot || !typebot) return
|
||||||
if (dequal(omit(typebot, 'updatedAt'), omit(typebotToSave, 'updatedAt')))
|
const typebotToSave = { ...localTypebot, ...updates }
|
||||||
return
|
if (dequal(omit(typebot, 'updatedAt'), omit(typebotToSave, 'updatedAt')))
|
||||||
setIsSavingLoading(true)
|
return
|
||||||
const { data, error } = await updateTypebotQuery(
|
setIsSavingLoading(true)
|
||||||
typebotToSave.id,
|
const { data, error } = await updateTypebotQuery(
|
||||||
typebotToSave
|
typebotToSave.id,
|
||||||
)
|
typebotToSave
|
||||||
if (data?.typebot) setLocalTypebot({ ...data.typebot })
|
)
|
||||||
setIsSavingLoading(false)
|
if (data?.typebot) setLocalTypebot({ ...data.typebot })
|
||||||
if (error) {
|
setIsSavingLoading(false)
|
||||||
showToast({ title: error.name, description: error.message })
|
if (error) {
|
||||||
return
|
showToast({ title: error.name, description: error.message })
|
||||||
}
|
return
|
||||||
mutate({
|
}
|
||||||
typebot: typebotToSave,
|
mutate({
|
||||||
|
typebot: typebotToSave,
|
||||||
|
publishedTypebot,
|
||||||
|
webhooks: webhooks ?? [],
|
||||||
|
})
|
||||||
|
window.removeEventListener('beforeunload', preventUserFromRefreshing)
|
||||||
|
},
|
||||||
|
[
|
||||||
|
localTypebot,
|
||||||
|
mutate,
|
||||||
publishedTypebot,
|
publishedTypebot,
|
||||||
webhooks: webhooks ?? [],
|
setLocalTypebot,
|
||||||
})
|
showToast,
|
||||||
window.removeEventListener('beforeunload', preventUserFromRefreshing)
|
typebot,
|
||||||
}, [
|
webhooks,
|
||||||
localTypebot,
|
]
|
||||||
mutate,
|
)
|
||||||
publishedTypebot,
|
|
||||||
setLocalTypebot,
|
|
||||||
showToast,
|
|
||||||
typebot,
|
|
||||||
webhooks,
|
|
||||||
])
|
|
||||||
|
|
||||||
const savePublishedTypebot = async (newPublishedTypebot: PublicTypebot) => {
|
const savePublishedTypebot = async (newPublishedTypebot: PublicTypebot) => {
|
||||||
if (!localTypebot) return
|
if (!localTypebot) return
|
||||||
@ -232,9 +235,9 @@ export const TypebotProvider = ({
|
|||||||
)
|
)
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
Router.events.on('routeChangeStart', saveTypebot)
|
Router.events.on('routeChangeStart', () => saveTypebot())
|
||||||
return () => {
|
return () => {
|
||||||
Router.events.off('routeChangeStart', saveTypebot)
|
Router.events.off('routeChangeStart', () => saveTypebot())
|
||||||
}
|
}
|
||||||
}, [saveTypebot])
|
}, [saveTypebot])
|
||||||
|
|
||||||
@ -266,13 +269,12 @@ export const TypebotProvider = ({
|
|||||||
const publishTypebot = async () => {
|
const publishTypebot = async () => {
|
||||||
if (!localTypebot) return
|
if (!localTypebot) return
|
||||||
const newLocalTypebot = { ...localTypebot }
|
const newLocalTypebot = { ...localTypebot }
|
||||||
if (!publishedTypebot) {
|
if (!publishedTypebot || !localTypebot.publicId) {
|
||||||
const newPublicId =
|
const newPublicId =
|
||||||
localTypebot.publicId ??
|
localTypebot.publicId ??
|
||||||
parseDefaultPublicId(localTypebot.name, localTypebot.id)
|
parseDefaultPublicId(localTypebot.name, localTypebot.id)
|
||||||
updateLocalTypebot({ publicId: newPublicId })
|
|
||||||
newLocalTypebot.publicId = newPublicId
|
newLocalTypebot.publicId = newPublicId
|
||||||
await saveTypebot()
|
await saveTypebot({ publicId: newPublicId })
|
||||||
}
|
}
|
||||||
if (publishedTypebot) {
|
if (publishedTypebot) {
|
||||||
await savePublishedTypebot({
|
await savePublishedTypebot({
|
||||||
|
Reference in New Issue
Block a user