feat(privacy): support nobody option for group invites
Some checks are pending
CI / test (push) Has started running

This commit is contained in:
2026-03-08 20:32:29 +03:00
parent 362098b954
commit 4122882b7e
6 changed files with 8 additions and 6 deletions

View File

@@ -17,7 +17,7 @@ interface UserProfileUpdatePayload {
privacy_private_messages?: "everyone" | "contacts" | "nobody";
privacy_last_seen?: "everyone" | "contacts" | "nobody";
privacy_avatar?: "everyone" | "contacts" | "nobody";
privacy_group_invites?: "everyone" | "contacts";
privacy_group_invites?: "everyone" | "contacts" | "nobody";
}
export async function updateMyProfile(payload: UserProfileUpdatePayload): Promise<AuthUser> {

View File

@@ -86,7 +86,7 @@ export interface AuthUser {
privacy_private_messages?: "everyone" | "contacts" | "nobody";
privacy_last_seen?: "everyone" | "contacts" | "nobody";
privacy_avatar?: "everyone" | "contacts" | "nobody";
privacy_group_invites?: "everyone" | "contacts";
privacy_group_invites?: "everyone" | "contacts" | "nobody";
created_at: string;
updated_at: string;
}

View File

@@ -47,7 +47,7 @@ export function SettingsPanel({ open, onClose }: Props) {
const [recoveryCodes, setRecoveryCodes] = useState<string[]>([]);
const [privacyLastSeen, setPrivacyLastSeen] = useState<"everyone" | "contacts" | "nobody">("everyone");
const [privacyAvatar, setPrivacyAvatar] = useState<"everyone" | "contacts" | "nobody">("everyone");
const [privacyGroupInvites, setPrivacyGroupInvites] = useState<"everyone" | "contacts">("everyone");
const [privacyGroupInvites, setPrivacyGroupInvites] = useState<"everyone" | "contacts" | "nobody">("everyone");
const [notificationItems, setNotificationItems] = useState<NotificationItem[]>([]);
const [notificationItemsLoading, setNotificationItemsLoading] = useState(false);
const [profileDraft, setProfileDraft] = useState({
@@ -501,10 +501,11 @@ export function SettingsPanel({ open, onClose }: Props) {
<select
className="w-full rounded bg-slate-800 px-2 py-1 text-xs"
value={privacyGroupInvites}
onChange={(e) => setPrivacyGroupInvites(e.target.value as "everyone" | "contacts")}
onChange={(e) => setPrivacyGroupInvites(e.target.value as "everyone" | "contacts" | "nobody")}
>
<option value="everyone">Everybody</option>
<option value="contacts">My contacts</option>
<option value="nobody">Nobody</option>
</select>
</div>
<button