2
0

🐛 (share) Fix publicId null when publishing

This commit is contained in:
Baptiste Arnaud
2023-03-01 17:08:01 +01:00
parent cc07389c37
commit eebcbb10b8

View File

@ -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({