import * as React from "react"; import * as Constants from "~/common/constants"; import * as Strings from "~/common/strings"; import * as SVG from "~/common/svg"; import * as Actions from "~/common/actions"; import * as Events from "~/common/custom-events"; import * as Styles from "~/common/styles"; import { Link } from "~/components/core/Link"; import { css } from "@emotion/react"; import { ButtonPrimary, ButtonSecondary } from "~/components/system/components/Buttons"; import { SecondaryTabGroup } from "~/components/core/TabGroup"; import { LoaderSpinner } from "~/components/system/components/Loaders"; import ProcessedText from "~/components/core/ProcessedText"; import EmptyState from "~/components/core/EmptyState"; import ProfilePhoto from "~/components/core/ProfilePhoto"; import CollectionPreviewBlock from "~/components/core/CollectionPreviewBlock"; const STYLES_PROFILE_BACKGROUND = css` background-color: ${Constants.system.white}; width: 100%; padding: 104px 56px 24px 56px; @media (max-width: ${Constants.sizes.mobile}px) { padding: 80px 24px 16px 24px; } `; const STYLES_PROFILE = css` width: 100%; padding: 0px 56px 80px 56px; overflow-wrap: break-word; white-space: pre-wrap; @media (max-width: ${Constants.sizes.mobile}px) { padding: 0px 24px 16px 24px; } `; const STYLES_PROFILE_INFO = css` line-height: 1.3; width: 50%; max-width: 800px; overflow-wrap: break-word; white-space: pre-wrap; margin: 0 auto; @media (max-width: ${Constants.sizes.tablet}px) { width: 100%; max-width: 100%; } `; const STYLES_INFO = css` display: block; width: 100%; text-align: center; margin-bottom: 48px; overflow-wrap: break-word; white-space: pre-wrap; `; const STYLES_PROFILE_IMAGE = css` background-color: ${Constants.semantic.bgLight}; background-size: cover; background-position: 50% 50%; width: 120px; height: 120px; flex-shrink: 0; border-radius: 8px; margin: 0 auto; position: relative; @media (max-width: ${Constants.sizes.mobile}px) { width: 64px; height: 64px; } `; const STYLES_STATUS_INDICATOR = css` position: absolute; bottom: 0; right: 0; width: 12px; height: 12px; border-radius: 50%; border: 2px solid ${Constants.system.green}; background-color: ${Constants.system.green}; `; const STYLES_NAME = css` font-size: ${Constants.typescale.lvl4}; font-family: ${Constants.font.semiBold}; max-width: 100%; font-weight: 400; margin: 16px auto; overflow-wrap: break-word; white-space: pre-wrap; color: ${Constants.system.black}; @media (max-width: ${Constants.sizes.mobile}px) { margin-bottom: 8px; } `; const STYLES_DESCRIPTION = css` font-size: ${Constants.typescale.lvl0}; color: ${Constants.system.grayLight2}; max-width: 100%; overflow-wrap: break-word; white-space: pre-wrap; ul, ol { white-space: normal; } @media (max-width: ${Constants.sizes.mobile}px) { margin-top: 24px; } `; const STYLES_STATS = css` font-size: ${Constants.typescale.lvl0}; margin: 16px auto; display: flex; justify-content: center; color: ${Constants.system.grayDark2}; `; const STYLES_STAT = css` margin: 0px 12px; ${"" /* width: 112px; */} flex-shrink: 0; `; const STYLES_BUTTON = css` margin-bottom: 32px; @media (max-width: ${Constants.sizes.mobile}px) { margin-bottom: 16px; } `; // const STYLES_COPY_INPUT = css` // pointer-events: none; // position: absolute; // opacity: 0; // `; function CollectionsPage({ user, viewer, fetched, subscriptions, tab = "collections", isOwner, onAction, }) { let slates = []; if (tab === "collections") { slates = user.slates ? isOwner ? user.slates.filter((slate) => slate.isPublic === true) : user.slates : slates; } else { slates = subscriptions; } slates = slates || []; return (