allow people to connect their mailbox (#9982)

allow people to connect their mailbox independantly from the auth
possibilities
This commit is contained in:
Guillim
2025-02-03 18:53:19 +01:00
committed by GitHub
parent 47487f5d1c
commit caee5b1f89
2 changed files with 14 additions and 29 deletions

View File

@ -4,10 +4,7 @@ import { ConnectedAccount } from '@/accounts/types/ConnectedAccount';
import { SettingsAccountsListEmptyStateCard } from '@/settings/accounts/components/SettingsAccountsListEmptyStateCard'; import { SettingsAccountsListEmptyStateCard } from '@/settings/accounts/components/SettingsAccountsListEmptyStateCard';
import { SettingsPath } from '@/types/SettingsPath'; import { SettingsPath } from '@/types/SettingsPath';
import { currentWorkspaceState } from '@/auth/states/currentWorkspaceState';
import { SettingsAccountsConnectedAccountsRowRightContainer } from '@/settings/accounts/components/SettingsAccountsConnectedAccountsRowRightContainer'; import { SettingsAccountsConnectedAccountsRowRightContainer } from '@/settings/accounts/components/SettingsAccountsConnectedAccountsRowRightContainer';
import { useRecoilValue } from 'recoil';
import { isDefined } from 'twenty-shared';
import { useNavigateSettings } from '~/hooks/useNavigateSettings'; import { useNavigateSettings } from '~/hooks/useNavigateSettings';
import { SettingsListCard } from '../../components/SettingsListCard'; import { SettingsListCard } from '../../components/SettingsListCard';
@ -24,17 +21,11 @@ export const SettingsAccountsConnectedAccountsListCard = ({
loading?: boolean; loading?: boolean;
}) => { }) => {
const navigate = useNavigateSettings(); const navigate = useNavigateSettings();
const currentWorkspace = useRecoilValue(currentWorkspaceState);
if (!accounts.length) { if (!accounts.length) {
return <SettingsAccountsListEmptyStateCard />; return <SettingsAccountsListEmptyStateCard />;
} }
const atLeastOneProviderAvailable =
isDefined(currentWorkspace) &&
(currentWorkspace?.isGoogleAuthEnabled ||
currentWorkspace?.isMicrosoftAuthEnabled);
return ( return (
<SettingsListCard <SettingsListCard
items={accounts} items={accounts}
@ -44,7 +35,7 @@ export const SettingsAccountsConnectedAccountsListCard = ({
RowRightComponent={({ item: account }) => ( RowRightComponent={({ item: account }) => (
<SettingsAccountsConnectedAccountsRowRightContainer account={account} /> <SettingsAccountsConnectedAccountsRowRightContainer account={account} />
)} )}
hasFooter={atLeastOneProviderAvailable} hasFooter={true}
footerButtonLabel="Add account" footerButtonLabel="Add account"
onFooterButtonClick={() => navigate(SettingsPath.NewAccount)} onFooterButtonClick={() => navigate(SettingsPath.NewAccount)}
/> />

View File

@ -1,8 +1,6 @@
import { currentWorkspaceState } from '@/auth/states/currentWorkspaceState';
import { useTriggerApisOAuth } from '@/settings/accounts/hooks/useTriggerApiOAuth'; import { useTriggerApisOAuth } from '@/settings/accounts/hooks/useTriggerApiOAuth';
import styled from '@emotion/styled'; import styled from '@emotion/styled';
import { useLingui } from '@lingui/react/macro'; import { useLingui } from '@lingui/react/macro';
import { useRecoilValue } from 'recoil';
import { import {
Button, Button,
Card, Card,
@ -32,7 +30,6 @@ export const SettingsAccountsListEmptyStateCard = ({
label, label,
}: SettingsAccountsListEmptyStateCardProps) => { }: SettingsAccountsListEmptyStateCardProps) => {
const { triggerApisOAuth } = useTriggerApisOAuth(); const { triggerApisOAuth } = useTriggerApisOAuth();
const currentWorkspace = useRecoilValue(currentWorkspaceState);
const { t } = useLingui(); const { t } = useLingui();
@ -40,22 +37,19 @@ export const SettingsAccountsListEmptyStateCard = ({
<Card> <Card>
<StyledHeader>{label || t`No connected account`}</StyledHeader> <StyledHeader>{label || t`No connected account`}</StyledHeader>
<StyledBody> <StyledBody>
{currentWorkspace?.isGoogleAuthEnabled && ( <Button
<Button Icon={IconGoogle}
Icon={IconGoogle} title={t`Connect with Google`}
title={t`Connect with Google`} variant="secondary"
variant="secondary" onClick={() => triggerApisOAuth('google')}
onClick={() => triggerApisOAuth('google')} />
/>
)} <Button
{currentWorkspace?.isMicrosoftAuthEnabled && ( Icon={IconMicrosoft}
<Button title={t`Connect with Microsoft`}
Icon={IconMicrosoft} variant="secondary"
title={t`Connect with Microsoft`} onClick={() => triggerApisOAuth('microsoft')}
variant="secondary" />
onClick={() => triggerApisOAuth('microsoft')}
/>
)}
</StyledBody> </StyledBody>
</Card> </Card>
); );