mirror of
https://github.com/arsvendg/Stirling-PDF.git
synced 2026-07-14 10:34:06 +02:00
# Description of Changes Makes the desktop options to sign in with your Stirling account, or sign into self-hosted: <img width="608" height="456" alt="image" src="https://github.com/user-attachments/assets/a49988ab-db3f-4333-b242-790aee5c07c6" /> The first option still runs everything locally, just enforces that you've signed in for now. Future work will enable sending operations that can't be run locally to the server.
73 lines
2.0 KiB
TypeScript
73 lines
2.0 KiB
TypeScript
import React from 'react';
|
|
import { Stack, Button, Text } from '@mantine/core';
|
|
import { useTranslation } from 'react-i18next';
|
|
import CloudIcon from '@mui/icons-material/Cloud';
|
|
import ComputerIcon from '@mui/icons-material/Computer';
|
|
|
|
interface ModeSelectionProps {
|
|
onSelect: (mode: 'saas' | 'selfhosted') => void;
|
|
loading: boolean;
|
|
}
|
|
|
|
export const ModeSelection: React.FC<ModeSelectionProps> = ({ onSelect, loading }) => {
|
|
const { t } = useTranslation();
|
|
|
|
return (
|
|
<Stack gap="md">
|
|
<Button
|
|
size="xl"
|
|
variant="default"
|
|
onClick={() => onSelect('saas')}
|
|
disabled={loading}
|
|
leftSection={<CloudIcon />}
|
|
styles={{
|
|
root: {
|
|
height: 'auto',
|
|
padding: '1.25rem',
|
|
},
|
|
inner: {
|
|
justifyContent: 'flex-start',
|
|
},
|
|
section: {
|
|
marginRight: '1rem',
|
|
},
|
|
}}
|
|
>
|
|
<div style={{ textAlign: 'left', flex: 1 }}>
|
|
<Text fw={600} size="md">{t('setup.mode.saas.title', 'Use SaaS')}</Text>
|
|
<Text size="sm" c="dimmed" fw={400}>
|
|
{t('setup.mode.saas.description', 'Sign in to Stirling PDF cloud service')}
|
|
</Text>
|
|
</div>
|
|
</Button>
|
|
|
|
<Button
|
|
size="xl"
|
|
variant="default"
|
|
onClick={() => onSelect('selfhosted')}
|
|
disabled={loading}
|
|
leftSection={<ComputerIcon />}
|
|
styles={{
|
|
root: {
|
|
height: 'auto',
|
|
padding: '1.25rem',
|
|
},
|
|
inner: {
|
|
justifyContent: 'flex-start',
|
|
},
|
|
section: {
|
|
marginRight: '1rem',
|
|
},
|
|
}}
|
|
>
|
|
<div style={{ textAlign: 'left', flex: 1 }}>
|
|
<Text fw={600} size="md">{t('setup.mode.selfhosted.title', 'Self-Hosted Server')}</Text>
|
|
<Text size="sm" c="dimmed" fw={400}>
|
|
{t('setup.mode.selfhosted.description', 'Connect to your own Stirling PDF server')}
|
|
</Text>
|
|
</div>
|
|
</Button>
|
|
</Stack>
|
|
);
|
|
};
|