<template>
<div :class="['form-embed', classList]" :style="background ? { backgroundColor: background } : ''">
<div :class="wrapper">
<h4>{{ props.data.form_embed_title }}</h4>
<p class="text">{{ props.data.form_embed_text }}</p>
<div class="form-container">
<div :id="props.data.form_embed_form_id" :lang="locale"></div>
</div>
</div>
</div>
</template>
<script setup>
const { locale } = useI18n();
const props = defineProps({
data: { type: Object, default: () => {} },
});
const { classList, background, wrapper } = useUseStyling(props.data, 'form_embed', false);
const scriptSrc = ref(props.data.form_embed_source_id);
const scriptRef = ref(null);
useHead({
script: [
{
id: props.data.form_embed_script_id,
src: scriptSrc.value + '?t=' + Date.now(),
defer: 'defer',
ref: scriptRef,
},
],
});
watch(locale, () => {
if (scriptRef.value) {
scriptRef.value.src = props.data.form_embed_source_id + '?t=' + Date.now();
// Adding a query parameter can help bypass browser caching
}
});
</script>
<template>
<div :class="['form-embed', classList]" :style="background ? { backgroundColor: background } : ''">
<div :class="wrapper">
<h4>{{ props.data.form_embed_title }}</h4>
<p class="text">{{ props.data.form_embed_text }}</p>
<div class="form-container">
<div :id="props.data.form_embed_form_id" :lang="locale"></div>
</div>
</div>
</div>
</template>
<script setup>
const { locale } = useI18n();
const props = defineProps({
data: { type: Object, default: () => {} },
});
const { classList, background, wrapper } = useUseStyling(props.data, 'form_embed', false);
const scriptSrc = ref(props.data.form_embed_source_id);
const scriptRef = ref(null);
useHead({
script: [
{
id: props.data.form_embed_script_id,
src: scriptSrc.value + '?t=' + Date.now(),
defer: 'defer',
ref: scriptRef,
},
],
});
watch(locale, () => {
if (scriptRef.value) {
scriptRef.value.src = props.data.form_embed_source_id + '?t=' + Date.now();
// Adding a query parameter can help bypass browser caching
}
});
</script>