Add sliding sync support and change font to SF Pro Display

- Enable sliding sync in config.json with matrix.org proxy
- Update font from InterVariable to SF Pro Display
- Add sliding sync state management with Jotai atoms
- Create bridge between sliding sync and existing room list atoms
- Add sliding sync settings UI in General settings
- Implement purple theme with gradient enhancements
- Add synchronization status display for sliding sync
- Update client initialization to support sliding sync

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Azi Mandias 2025-07-28 12:38:13 -04:00
parent 67b05eeb09
commit d25cc7250b
25 changed files with 1510 additions and 14 deletions

View file

@ -45,6 +45,7 @@ import { stopPropagation } from '../../../utils/keyboard';
import { useMessageLayoutItems } from '../../../hooks/useMessageLayout';
import { useMessageSpacingItems } from '../../../hooks/useMessageSpacing';
import { SequenceCardStyle } from '../styles.css';
import { useClientConfig } from '../../../hooks/useClientConfig';
type ThemeSelectorProps = {
themeNames: Record<string, string>;
@ -612,6 +613,50 @@ function Messages() {
);
}
function Synchronization() {
const clientConfig = useClientConfig();
const isEnabled = clientConfig.slidingSync?.enabled;
return (
<Box direction="Column" gap="100">
<Text size="L400">Synchronization</Text>
<SequenceCard className={SequenceCardStyle} variant="SurfaceVariant" direction="Column">
<SettingTile
title="Sliding Sync"
description="High-performance synchronization protocol using native Matrix support."
after={
<Chip
variant={isEnabled ? "Success" : "Secondary"}
radii="Pill"
>
<Text size="B300">{isEnabled ? 'Enabled (Native)' : 'Disabled'}</Text>
</Chip>
}
/>
</SequenceCard>
{isEnabled && (
<SequenceCard className={SequenceCardStyle} variant="SurfaceVariant" direction="Column">
<SettingTile
title="Implementation"
description={clientConfig.slidingSync?.proxyUrl ? `Proxy: ${clientConfig.slidingSync.proxyUrl}` : 'Native sliding sync (MSC4186)'}
/>
</SequenceCard>
)}
{!isEnabled && (
<SequenceCard className={SequenceCardStyle} variant="SurfaceVariant" direction="Column">
<SettingTile
title="Configuration"
description="Sliding sync is disabled. Edit config.json and set slidingSync.enabled to true to enable native sliding sync."
/>
</SequenceCard>
)}
</Box>
);
}
type GeneralProps = {
requestClose: () => void;
};
@ -639,6 +684,7 @@ export function General({ requestClose }: GeneralProps) {
<Appearance />
<Editor />
<Messages />
<Synchronization />
</Box>
</PageContent>
</Scroll>