feat: init

This commit is contained in:
montaghanmy
2023-03-23 11:03:16 +01:00
commit 10fe6f78d1
11518 changed files with 509786 additions and 0 deletions
@@ -0,0 +1,62 @@
import { Info, Subtitle } from 'app/atoms/text';
import Switch from 'app/components/inputs/switch';
import Languages from 'app/features/global/services/languages-service';
import { ToasterService } from 'app/features/global/services/toaster-service';
import { useInvitationUsers } from 'app/features/invitation/hooks/use-invitation-users';
import { useCurrentUser } from 'app/features/users/hooks/use-current-user';
import workspaceApiClient from 'app/features/workspaces/api/workspace-api-client';
import { useCurrentWorkspace } from 'app/features/workspaces/hooks/use-workspaces';
import React, { useState } from 'react';
export default (): React.ReactElement => {
const { user } = useCurrentUser();
const { members_limit_reached } = useInvitationUsers();
const { workspace } = useCurrentWorkspace();
const [allow, setAllow] = useState<boolean>(!!workspace?.preferences?.invite_domain);
const currentUserDomain = user?.email.split('@').pop();
const handleChange = async (value: boolean): Promise<void> => {
if (value) {
try {
await workspaceApiClient.setInvitationDomain(
workspace?.company_id as string,
workspace?.id as string,
currentUserDomain as string,
);
setAllow(true);
ToasterService.success('Invitation domain updated');
} catch (error) {
ToasterService.error('Failed to set invitation domain');
}
}
};
return !members_limit_reached ? (
<>
<Subtitle className="mt-4 block">Automatically invite my business</Subtitle>
<Info className="block">
If this is enabled, anyone creating a Twake account with your business email will
automatically be added to this company and this workspace.
</Info>
<div className="flex flex-row space-x-2 mt-1 bg-zinc-200 px-3 py-2 rounded-md border-transparent w-full h-9">
<div className="flex-1">
{Languages.t(
'components.invitation.allow_anyone_by_email.text',
[workspace?.preferences?.invite_domain || currentUserDomain],
`Let anyone with @${
workspace?.preferences?.invite_domain || currentUserDomain
} email join this workspace`,
)}
</div>
<Switch
checked={allow}
onChange={handleChange}
disabled={!!workspace?.preferences?.invite_domain}
/>
</div>
</>
) : (
<></>
);
};