diff --git a/packages/common-app/src/dialogs/ImageLightbox/ImageLightbox.tsx b/packages/common-app/src/dialogs/ImageLightbox/ImageLightbox.tsx index 723a8586..290e4595 100644 --- a/packages/common-app/src/dialogs/ImageLightbox/ImageLightbox.tsx +++ b/packages/common-app/src/dialogs/ImageLightbox/ImageLightbox.tsx @@ -1,5 +1,5 @@ import { createPortal } from 'react-dom'; -import { usePortal, DialogWrapper, Times } from '@youfoundation/common-app'; +import { usePortal, Times } from '@youfoundation/common-app'; import { EmbeddedThumb, TargetDrive } from '@youfoundation/js-lib/core'; import { Image } from '@youfoundation/common-app'; import { useEffect } from 'react'; @@ -44,7 +44,7 @@ export const ImageLightbox = ({
-
+
{onClose ? ( ) : null} + { - if (!blob) { - return; - } + if (!blob) return; new Blob([blob], { type: OUTPUT_MIME_TYPE }).arrayBuffer().then((buffer) => { const contentByteArray = new Uint8Array(buffer); diff --git a/packages/common-app/src/socialFeed/Blocks/Interacts/Comments/CommentComposer.tsx b/packages/common-app/src/socialFeed/Blocks/Interacts/Comments/CommentComposer.tsx index 8e9c675b..b5482d38 100644 --- a/packages/common-app/src/socialFeed/Blocks/Interacts/Comments/CommentComposer.tsx +++ b/packages/common-app/src/socialFeed/Blocks/Interacts/Comments/CommentComposer.tsx @@ -116,6 +116,7 @@ export const CommentEditor = ({ />
setBody((oldVal) => `${oldVal} ${val}`)} /> diff --git a/packages/common-app/src/socialFeed/Blocks/Interacts/EmojiPicker/EmojiSelector.tsx b/packages/common-app/src/socialFeed/Blocks/Interacts/EmojiPicker/EmojiSelector.tsx index ab968acb..74bb8187 100644 --- a/packages/common-app/src/socialFeed/Blocks/Interacts/EmojiPicker/EmojiSelector.tsx +++ b/packages/common-app/src/socialFeed/Blocks/Interacts/EmojiPicker/EmojiSelector.tsx @@ -8,35 +8,45 @@ const EmojiPicker = lazy(() => export const EmojiSelector = ({ className, onInput, + defaultValue, + size, }: { className?: string; onInput: (val: string) => void; + defaultValue?: string; + size?: 'large' | 'small' | 'square' | 'none'; }) => { const [isOpen, setIsOpen] = useState(false); const wrapperRef = useRef(null); useOutsideTrigger(wrapperRef, () => setIsOpen(false)); - const { verticalSpace } = useMostSpace(wrapperRef); + const { verticalSpace, horizontalSpace } = useMostSpace(wrapperRef); return (
setIsOpen(!isOpen)} - icon={Lol} + icon={defaultValue ? undefined : Lol} + children={defaultValue || null} />
{isOpen ? ( onInput(emojiDetail.unicode)} + onInput={(emojiDetail) => { + onInput(emojiDetail.unicode); + setIsOpen(false); + }} key={'emoji-picker'} /> diff --git a/packages/js-lib/src/public/home/HomeTypes.ts b/packages/js-lib/src/public/home/HomeTypes.ts index 5de58aa5..2dc4c85a 100644 --- a/packages/js-lib/src/public/home/HomeTypes.ts +++ b/packages/js-lib/src/public/home/HomeTypes.ts @@ -36,5 +36,9 @@ export class HomePageFields { export class HomePageThemeFields { static readonly ThemeId: string = 'themeId'; + static readonly Favicon: string = 'favicon'; + static readonly Colors: string = 'colors'; + static readonly Tabs: string = 'tabs'; + static readonly TabsOrder: string = 'tabsOrder'; static readonly UseDarkMode: string = 'useDarkMode'; } diff --git a/packages/owner-app/src/components/Attribute/AttributeFields/AttributeFields.tsx b/packages/owner-app/src/components/Attribute/AttributeFields/AttributeFields.tsx index ce76c9e0..f648ef1b 100644 --- a/packages/owner-app/src/components/Attribute/AttributeFields/AttributeFields.tsx +++ b/packages/owner-app/src/components/Attribute/AttributeFields/AttributeFields.tsx @@ -3,6 +3,7 @@ import { HomePageConfig, HomePageFields, HomePageTheme, + HomePageThemeFields, } from '@youfoundation/js-lib/public'; import { BirthdayFields, @@ -32,6 +33,7 @@ import ThemeSelector from '../../Form/ThemeSelector'; import ImageSelector from '@youfoundation/common-app/src/form/image/ImageSelector'; import { ThumbnailInstruction } from '@youfoundation/js-lib/core'; import { generateDisplayLocation, generateDisplayName } from '@youfoundation/js-lib/helpers'; +import FaviconSelector from '../../Form/FaviconSelector'; const profileInstructionThumbSizes: ThumbnailInstruction[] = [ { quality: 85, width: 250, height: 250 }, @@ -53,9 +55,6 @@ const AttributeFields = ({ }) => { const debouncedChange = useMemo(() => debounce(onChange, 500), [onChange]); - // Home consts: - const DEFAULT_TABS_ORDER = ['Posts', 'Links', 'About', 'Connections']; - switch (attribute.type) { case BuiltInAttributes.Name: return ; @@ -301,102 +300,10 @@ const AttributeFields = ({ ); break; case HomePageAttributes.HomePage: - return ( - <> -
- - - onChange({ target: { name: e.target.name, value: e.target.value?.fileId } }) - } - acl={attribute.acl} - targetDrive={GetTargetDriveFromProfileId(HomePageConfig.DefaultDriveId)} - sizeClass={`${ - !attribute.data?.[HomePageFields.HeaderImageId] - ? 'aspect-[16/9] md:aspect-[5/1]' - : '' - } w-full object-cover`} - thumbInstructions={headerInstructionThumbSizes} - /> -
-
- - -
-
- -