refactor the flow for push notifcations

This commit is contained in:
Harsh Mahajan
2025-09-30 20:12:39 +05:30
parent 77b01de9e4
commit 6bfa0072b9
4 changed files with 20 additions and 22 deletions
@@ -21,15 +21,18 @@
const options = [
{ label: 'Now', value: 'now' },
{ label: 'Schedule', value: 'later' }
{ label: 'Custom', value: 'later' }
];
const formatOptions: Intl.DateTimeFormatOptions = {
const dateOptions: Intl.DateTimeFormatOptions = {
month: 'long',
day: 'numeric',
year: 'numeric',
year: 'numeric'
};
const timeOptions: Intl.DateTimeFormatOptions = {
hour: 'numeric',
minute: 'numeric',
second: 'numeric',
hourCycle: 'h23',
timeZoneName: 'longGeneric'
};
@@ -57,28 +60,23 @@
</script>
<Layout.Stack>
<InputSelect id="when" required {options} bind:value={when} />
<InputDate
id="date"
label="Date"
disabled={when === 'now'}
required={when === 'later'}
min={minDate}
bind:value={date} />
<InputTime
id="time"
label="Time"
disabled={when === 'now'}
required={when === 'later'}
min={minTime}
bind:value={time} />
<InputSelect id="when" label="Schedule" required {options} bind:value={when} />
{#if when === 'later'}
<Layout.Stack direction="row" gap="m">
<InputDate id="date" min={minDate} bind:value={date} required />
<InputTime id="time" min={minTime} bind:value={time} required />
</Layout.Stack>
{/if}
<Helper type="neutral">
{#if when === 'now'}
The message will be sent immediately
{:else if !dateTime || isNaN(dateTime.getTime())}
The message will be sent later
{:else}
The message will be sent at {dateTime.toLocaleString('en', formatOptions)}
The message will be sent on {dateTime.toLocaleDateString('en', dateOptions)} at {dateTime.toLocaleTimeString(
'en',
timeOptions
)}
{/if}
</Helper>
</Layout.Stack>
@@ -133,7 +133,7 @@
<Fieldset legend="Targets">
<Targets type={MessagingProviderType.Email} bind:topics bind:targets />
</Fieldset>
<Fieldset legend="Schedule">
<Fieldset legend="Settings">
<Schedule bind:scheduledAt {targets} />
</Fieldset>
</Layout.Stack>
@@ -187,7 +187,7 @@
<Fieldset legend="Targets">
<Targets type={MessagingProviderType.Push} bind:topics bind:targets />
</Fieldset>
<Fieldset legend="Schedule">
<Fieldset legend="Settings">
<Schedule bind:scheduledAt {targets} />
</Fieldset>
</Layout.Stack>
@@ -115,7 +115,7 @@
<Fieldset legend="Targets">
<Targets type={MessagingProviderType.Sms} bind:topics bind:targets />
</Fieldset>
<Fieldset legend="Schedule">
<Fieldset legend="Settings">
<Schedule bind:scheduledAt {targets} />
</Fieldset>
</Layout.Stack>