feat: workspace level share settings (#14201)

fix #13698
This commit is contained in:
DarkSky
2026-01-03 01:13:27 +08:00
committed by GitHub
parent 60de882a30
commit 9a7f8e7d4d
36 changed files with 560 additions and 34 deletions
@@ -21,11 +21,19 @@ export const SharingPanel = () => {
export const Sharing = () => {
const t = useI18n();
const shareSetting = useService(WorkspaceShareSettingService).sharePreview;
const enableSharing = useLiveData(shareSetting.enableSharing$);
const enableUrlPreview = useLiveData(shareSetting.enableUrlPreview$);
const loading = useLiveData(shareSetting.isLoading$);
const permissionService = useService(WorkspacePermissionService);
const isOwner = useLiveData(permissionService.permission.isOwner$);
const handleToggleSharing = useAsyncCallback(
async (checked: boolean) => {
await shareSetting.setEnableSharing(checked);
},
[shareSetting]
);
const handleCheck = useAsyncCallback(
async (checked: boolean) => {
await shareSetting.setEnableUrlPreview(checked);
@@ -51,6 +59,20 @@ export const Sharing = () => {
disabled={loading}
/>
</SettingRow>
<SettingRow
name={t[
'com.affine.settings.workspace.sharing.workspace-sharing.title'
]()}
desc={t[
'com.affine.settings.workspace.sharing.workspace-sharing.description'
]()}
>
<Switch
checked={enableSharing ?? true}
onChange={handleToggleSharing}
disabled={loading}
/>
</SettingRow>
</SettingWrapper>
);
};