feat: add option to disable deleting calendar credentials for CalendarSettings atom (#18759)

This commit is contained in:
Rajiv Sahal
2025-01-22 13:09:25 +00:00
committed by GitHub
parent 15e7fc192e
commit 586b3532b5
3 changed files with 14 additions and 7 deletions
@@ -9,11 +9,13 @@ type CalendarSettingsPlatformWrapperProps = {
selectedCalendarSettingsCustomClassnames?: string;
};
calendarRedirectUrls?: CalendarRedirectUrls;
allowDelete?: boolean;
};
export const CalendarSettingsPlatformWrapper = ({
classNames,
calendarRedirectUrls,
allowDelete = true,
}: CalendarSettingsPlatformWrapperProps) => {
return (
<div className={classNames?.calendarSettingsCustomClassnames}>
@@ -24,6 +26,7 @@ export const CalendarSettingsPlatformWrapper = ({
<SelectedCalendarsSettingsPlatformWrapper
classNames={classNames?.selectedCalendarSettingsCustomClassnames}
calendarRedirectUrls={calendarRedirectUrls}
allowDelete={allowDelete}
/>
</div>
);
@@ -36,11 +36,13 @@ export type CalendarRedirectUrls = {
type SelectedCalendarsSettingsPlatformWrapperProps = {
classNames?: string;
calendarRedirectUrls?: CalendarRedirectUrls;
allowDelete?: boolean;
};
export const SelectedCalendarsSettingsPlatformWrapper = ({
classNames = "mx-5 mb-6",
calendarRedirectUrls,
allowDelete,
}: SelectedCalendarsSettingsPlatformWrapperProps) => {
const { t } = useLocale();
const query = useConnectedCalendars({});
@@ -81,12 +83,14 @@ export const SelectedCalendarsSettingsPlatformWrapper = ({
className="border-subtle mt-4 rounded-lg border"
actions={
<div className="flex w-32 justify-end">
<PlatformDisconnectIntegration
credentialId={connectedCalendar.credentialId}
trashIcon
buttonProps={{ className: "border border-default" }}
slug={connectedCalendar.integration.slug}
/>
{allowDelete && (
<PlatformDisconnectIntegration
credentialId={connectedCalendar.credentialId}
trashIcon
buttonProps={{ className: "border border-default" }}
slug={connectedCalendar.integration.slug}
/>
)}
</div>
}>
<div className="border-subtle border-t">
@@ -10,7 +10,7 @@ export default function Calendars(props: { calUsername: string; calEmail: string
<main className={`flex min-h-screen flex-col ${inter.className}`}>
<Navbar username={props.calUsername} />
<div>
<CalendarSettings />
<CalendarSettings allowDelete={true} />
</div>
</main>
);