feat: add Synchronization calendar settings (#4111)
* feat: add Calendar Settings section to Settings/Accounts/Calendars page Closes #4060 * refactor: rename components * feat: add Synchronization calendar settings Closes #4066
This commit is contained in:
@ -14,4 +14,4 @@ const StyledCardMedia = styled.div`
|
||||
width: ${({ theme }) => theme.spacing(6)};
|
||||
`;
|
||||
|
||||
export { StyledCardMedia as SettingsAccountsInboxSettingsCardMedia };
|
||||
export { StyledCardMedia as SettingsAccountsCardMedia };
|
||||
@ -2,7 +2,7 @@ import { useTheme } from '@emotion/react';
|
||||
import styled from '@emotion/styled';
|
||||
|
||||
import { MessageChannel } from '@/accounts/types/MessageChannel';
|
||||
import { SettingsAccountsInboxSettingsCardMedia } from '@/settings/accounts/components/SettingsAccountsInboxSettingsCardMedia';
|
||||
import { SettingsAccountsCardMedia } from '@/settings/accounts/components/SettingsAccountsCardMedia';
|
||||
import { IconUser } from '@/ui/display/icon';
|
||||
import { H2Title } from '@/ui/display/typography/components/H2Title';
|
||||
import { Toggle } from '@/ui/input/components/Toggle';
|
||||
@ -42,9 +42,9 @@ export const SettingsAccountsInboxSettingsContactAutoCreateSection = ({
|
||||
/>
|
||||
<Card>
|
||||
<StyledCardContent>
|
||||
<SettingsAccountsInboxSettingsCardMedia>
|
||||
<SettingsAccountsCardMedia>
|
||||
<IconUser size={theme.icon.size.sm} stroke={theme.icon.stroke.lg} />
|
||||
</SettingsAccountsInboxSettingsCardMedia>
|
||||
</SettingsAccountsCardMedia>
|
||||
<StyledTitle>Auto-creation</StyledTitle>
|
||||
<Toggle
|
||||
value={messageChannel.isContactAutoCreationEnabled}
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
import styled from '@emotion/styled';
|
||||
|
||||
import { SettingsAccountsInboxSettingsCardMedia } from '@/settings/accounts/components/SettingsAccountsInboxSettingsCardMedia';
|
||||
import { SettingsAccountsCardMedia } from '@/settings/accounts/components/SettingsAccountsCardMedia';
|
||||
import { H2Title } from '@/ui/display/typography/components/H2Title';
|
||||
import { Radio } from '@/ui/input/components/Radio';
|
||||
import { Card } from '@/ui/layout/card/components/Card';
|
||||
@ -29,7 +29,7 @@ const StyledCardContent = styled(CardContent)`
|
||||
}
|
||||
`;
|
||||
|
||||
const StyledCardMedia = styled(SettingsAccountsInboxSettingsCardMedia)`
|
||||
const StyledCardMedia = styled(SettingsAccountsCardMedia)`
|
||||
align-items: stretch;
|
||||
`;
|
||||
|
||||
|
||||
@ -1,8 +1,7 @@
|
||||
import { useTheme } from '@emotion/react';
|
||||
import styled from '@emotion/styled';
|
||||
|
||||
import { MessageChannel } from '@/accounts/types/MessageChannel';
|
||||
import { SettingsAccountsInboxSettingsCardMedia } from '@/settings/accounts/components/SettingsAccountsInboxSettingsCardMedia';
|
||||
import { SettingsAccountsCardMedia } from '@/settings/accounts/components/SettingsAccountsCardMedia';
|
||||
import { IconRefresh } from '@/ui/display/icon';
|
||||
import { H2Title } from '@/ui/display/typography/components/H2Title';
|
||||
import { Toggle } from '@/ui/input/components/Toggle';
|
||||
@ -23,33 +22,34 @@ const StyledTitle = styled.span`
|
||||
margin-right: auto;
|
||||
`;
|
||||
|
||||
type SettingsAccountsInboxSettingsSynchronizationSectionProps = {
|
||||
messageChannel: MessageChannel;
|
||||
type SettingsAccountsSynchronizationSectionProps = {
|
||||
cardTitle: string;
|
||||
description: string;
|
||||
isSynced: boolean;
|
||||
onToggle: (value: boolean) => void;
|
||||
};
|
||||
|
||||
export const SettingsAccountsInboxSettingsSynchronizationSection = ({
|
||||
messageChannel,
|
||||
export const SettingsAccountsSynchronizationSection = ({
|
||||
cardTitle,
|
||||
description,
|
||||
isSynced,
|
||||
onToggle,
|
||||
}: SettingsAccountsInboxSettingsSynchronizationSectionProps) => {
|
||||
}: SettingsAccountsSynchronizationSectionProps) => {
|
||||
const theme = useTheme();
|
||||
|
||||
return (
|
||||
<Section>
|
||||
<H2Title
|
||||
title="Synchronization"
|
||||
description="Past and future emails will automatically be synced to this workspace"
|
||||
/>
|
||||
<H2Title title="Synchronization" description={description} />
|
||||
<Card>
|
||||
<StyledCardContent>
|
||||
<SettingsAccountsInboxSettingsCardMedia>
|
||||
<SettingsAccountsCardMedia>
|
||||
<IconRefresh
|
||||
size={theme.icon.size.sm}
|
||||
stroke={theme.icon.stroke.lg}
|
||||
/>
|
||||
</SettingsAccountsInboxSettingsCardMedia>
|
||||
<StyledTitle>Sync emails</StyledTitle>
|
||||
<Toggle value={messageChannel.isSynced} onChange={onToggle} />
|
||||
</SettingsAccountsCardMedia>
|
||||
<StyledTitle>{cardTitle}</StyledTitle>
|
||||
<Toggle value={isSynced} onChange={onToggle} />
|
||||
</StyledCardContent>
|
||||
</Card>
|
||||
</Section>
|
||||
@ -1,5 +1,6 @@
|
||||
import { useParams } from 'react-router-dom';
|
||||
|
||||
import { SettingsAccountsSynchronizationSection } from '@/settings/accounts/components/SettingsAccountsSynchronizationSection';
|
||||
import { SettingsPageContainer } from '@/settings/components/SettingsPageContainer';
|
||||
import { getSettingsPagePath } from '@/settings/utils/getSettingsPagePath';
|
||||
import { SettingsPath } from '@/types/SettingsPath';
|
||||
@ -30,6 +31,12 @@ export const SettingsAccountsCalendarsSettings = () => {
|
||||
{ children: connectedAccount?.handle || '' },
|
||||
]}
|
||||
/>
|
||||
<SettingsAccountsSynchronizationSection
|
||||
description="Past and future calendar events will automatically be synced to this workspace"
|
||||
cardTitle="Sync events"
|
||||
isSynced={false}
|
||||
onToggle={() => {}}
|
||||
/>
|
||||
</SettingsPageContainer>
|
||||
</SubMenuTopBarContainer>
|
||||
);
|
||||
|
||||
@ -63,8 +63,10 @@ export const SettingsAccountsEmailsInboxSettings = () => {
|
||||
]}
|
||||
/>
|
||||
{/* TODO : discuss the desired sync behaviour */}
|
||||
{/* <SettingsAccountsInboxSettingsSynchronizationSection
|
||||
messageChannel={messageChannel}
|
||||
{/* <SettingsAccountsSynchronizationSection
|
||||
description="Past and future emails will automatically be synced to this workspace"
|
||||
cardTitle="Sync emails"
|
||||
isSynced={!!messageChannel?.isSynced}
|
||||
onToggle={handleSynchronizationToggle}
|
||||
/> */}
|
||||
<SettingsAccountsInboxSettingsVisibilitySection
|
||||
|
||||
Reference in New Issue
Block a user