67 lines
1.7 KiB
Svelte
67 lines
1.7 KiB
Svelte
<script>
|
|
import { Modal, ModalContent } from "@budibase/bbui"
|
|
import FreeTrial from "../../../../assets/FreeTrial.svelte"
|
|
import { get } from "svelte/store"
|
|
import { auth, licensing } from "stores/portal"
|
|
import { API } from "api"
|
|
import { PlanType } from "@budibase/types"
|
|
import { sdk } from "@budibase/shared-core"
|
|
|
|
let freeTrialModal
|
|
|
|
$: planType = $licensing?.license?.plan?.type
|
|
$: showFreeTrialModal(planType, freeTrialModal)
|
|
|
|
const showFreeTrialModal = (planType, freeTrialModal) => {
|
|
if (
|
|
planType === PlanType.ENTERPRISE_BASIC_TRIAL &&
|
|
!$auth.user?.freeTrialConfirmedAt &&
|
|
sdk.users.isAdmin($auth.user)
|
|
) {
|
|
freeTrialModal?.show()
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<Modal bind:this={freeTrialModal} disableCancel={true}>
|
|
<ModalContent
|
|
confirmText="Get started"
|
|
size="M"
|
|
showCancelButton={false}
|
|
showCloseIcon={false}
|
|
onConfirm={async () => {
|
|
if (get(auth).user) {
|
|
try {
|
|
await API.updateSelf({
|
|
freeTrialConfirmedAt: new Date().toISOString(),
|
|
})
|
|
// Update the cached user
|
|
await auth.getSelf()
|
|
} finally {
|
|
freeTrialModal.hide()
|
|
}
|
|
}
|
|
}}
|
|
>
|
|
<h1>Experience all of Budibase with a free 14-day trial</h1>
|
|
<div class="free-trial-text">
|
|
We've upgraded you to a free 14-day trial that allows you to try all our
|
|
features before deciding which plan is right for you.
|
|
<p>
|
|
At the end of your trial, we'll automatically downgrade you to the Free
|
|
plan unless you choose to upgrade.
|
|
</p>
|
|
</div>
|
|
<FreeTrial />
|
|
</ModalContent>
|
|
</Modal>
|
|
|
|
<style>
|
|
h1 {
|
|
font-size: 26px;
|
|
}
|
|
.free-trial-text {
|
|
font-size: 16px;
|
|
}
|
|
</style>
|