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,9 +172,10 @@ export const TypebotProvider = ({
typebot, typebot,
]) ])
const saveTypebot = useCallback(async () => { const saveTypebot = useCallback(
async (updates?: Partial<Typebot>) => {
if (!localTypebot || !typebot) return if (!localTypebot || !typebot) return
const typebotToSave = { ...localTypebot } const typebotToSave = { ...localTypebot, ...updates }
if (dequal(omit(typebot, 'updatedAt'), omit(typebotToSave, 'updatedAt'))) if (dequal(omit(typebot, 'updatedAt'), omit(typebotToSave, 'updatedAt')))
return return
setIsSavingLoading(true) setIsSavingLoading(true)
@ -194,7 +195,8 @@ export const TypebotProvider = ({
webhooks: webhooks ?? [], webhooks: webhooks ?? [],
}) })
window.removeEventListener('beforeunload', preventUserFromRefreshing) window.removeEventListener('beforeunload', preventUserFromRefreshing)
}, [ },
[
localTypebot, localTypebot,
mutate, mutate,
publishedTypebot, publishedTypebot,
@ -202,7 +204,8 @@ export const TypebotProvider = ({
showToast, showToast,
typebot, typebot,
webhooks, 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({