From 7de7917294ae8831f663aa12abbadbb813ef855c Mon Sep 17 00:00:00 2001 From: Liam Fitzgerald Date: Thu, 23 Sep 2021 11:34:27 +1000 Subject: [PATCH] interface: fix sharing private profile Fixes urbit/landscape#1189 --- .../apps/profile/components/EditProfile.tsx | 3 +- pkg/npm/api/contacts/lib.ts | 38 +++++++++---------- pkg/npm/api/contacts/types.ts | 10 ++--- 3 files changed, 25 insertions(+), 26 deletions(-) diff --git a/pkg/interface/src/views/apps/profile/components/EditProfile.tsx b/pkg/interface/src/views/apps/profile/components/EditProfile.tsx index a6ac696696..58c0dbd357 100644 --- a/pkg/interface/src/views/apps/profile/components/EditProfile.tsx +++ b/pkg/interface/src/views/apps/profile/components/EditProfile.tsx @@ -19,7 +19,6 @@ import GroupSearch from '~/views/components/GroupSearch'; import { ImageInput } from '~/views/components/ImageInput'; import { ProfileControls, ProfileHeader, - ProfileImages, ProfileStatus } from './Profile'; import airlock from '~/logic/api'; @@ -96,7 +95,7 @@ export function EditProfile(props: any): ReactElement { const newValue = key !== 'color' ? values[key] : uxToHex(values[key]); if (newValue !== contact[key]) { if (key === 'isPublic') { - airlock.poke(setPublic(true)); + airlock.poke(setPublic(newValue)); return; } else if (key === 'groups') { const toRemove: string[] = _.difference( diff --git a/pkg/npm/api/contacts/lib.ts b/pkg/npm/api/contacts/lib.ts index 360bb497c8..26b08c6b45 100644 --- a/pkg/npm/api/contacts/lib.ts +++ b/pkg/npm/api/contacts/lib.ts @@ -1,5 +1,5 @@ -import { Path, Patp, Poke, resourceAsPath, Scry } from "../lib"; +import { Patp, Poke, Scry } from '../lib'; import { Contact, ContactUpdateAdd, @@ -10,36 +10,36 @@ import { ContactUpdate, ContactUpdateAllowShips, ContactUpdateAllowGroup, - ContactUpdateSetPublic, -} from "./types"; + ContactUpdateSetPublic +} from './types'; -export const CONTACT_UPDATE_VERSION: number = 0; +export const CONTACT_UPDATE_VERSION = 0; const storeAction = (data: T, version: number = CONTACT_UPDATE_VERSION): Poke => ({ - app: "contact-store", + app: 'contact-store', mark: `contact-update-${version}`, - json: data, + json: data }); export { storeAction as contactStoreAction }; export const addContact = (ship: Patp, contact: Contact): Poke => { - contact["last-updated"] = Date.now(); + contact['last-updated'] = Date.now(); return storeAction({ - add: { ship, contact }, + add: { ship, contact } }); }; export const removeContact = (ship: Patp): Poke => storeAction({ - remove: { ship }, + remove: { ship } }); export const share = (recipient: Patp, version: number = CONTACT_UPDATE_VERSION): Poke => ({ - app: "contact-push-hook", - mark: "contact-share", - json: { share: recipient }, + app: 'contact-push-hook', + mark: 'contact-share', + json: { share: recipient } }); export const editContact = ( @@ -49,9 +49,9 @@ export const editContact = ( storeAction({ edit: { ship, - "edit-field": editField, - timestamp: Date.now(), - }, + 'edit-field': editField, + timestamp: Date.now() + } }); export const allowShips = ( @@ -67,7 +67,7 @@ export const allowGroup = ( name: string ): Poke => storeAction({ allow: { - group: resourceAsPath({ ship, name }) + group: { ship, name } } }); @@ -77,7 +77,7 @@ export const setPublic = ( return storeAction({ 'set-public': setPublic }); -} +}; export const retrieve = ( ship: string @@ -93,7 +93,7 @@ export const retrieve = ( } } }; -} +}; export const fetchIsAllowed = ( entity: string, @@ -105,5 +105,5 @@ export const fetchIsAllowed = ( return { app: 'contact-store', path: `/is-allowed/${entity}/${name}/${ship}/${isPersonal}` - } + }; }; diff --git a/pkg/npm/api/contacts/types.ts b/pkg/npm/api/contacts/types.ts index 09defdda0e..201aa243b3 100644 --- a/pkg/npm/api/contacts/types.ts +++ b/pkg/npm/api/contacts/types.ts @@ -1,5 +1,5 @@ -import { Path, Patp } from "../lib"; -import { Resource } from "../groups"; +import { Path, Patp } from '../lib'; +import { Resource } from '../groups'; export type ContactUpdate = | ContactUpdateAdd @@ -26,7 +26,7 @@ export interface ContactUpdateRemove { export interface ContactUpdateEdit { edit: { ship: Patp; - "edit-field": ContactEditField; + 'edit-field': ContactEditField; timestamp: number; }; } @@ -39,7 +39,7 @@ export interface ContactUpdateAllowShips { export interface ContactUpdateAllowGroup { allow: { - group: Path; + group: Resource; } } @@ -74,7 +74,7 @@ export interface Contact { type ContactKeys = keyof Contact; -export type ContactEditFieldPrim = Exclude; +export type ContactEditFieldPrim = Exclude; export type ContactEditField = Partial> & { 'add-group'?: Resource;