import * as React from "react"; import * as Actions from "~/common/actions"; import * as Constants from "~/common/constants"; import * as SVG from "~/common/svg"; import { css } from "@emotion/react"; import { SecondaryTabGroup } from "~/components/core/TabGroup"; import { Boundary } from "~/components/system/components/fragments/Boundary"; import { PopoverNavigation } from "~/components/system/components/PopoverNavigation"; import { ButtonPrimary, ButtonSecondary } from "~/components/system/components/Buttons"; import ScenePage from "~/components/core/ScenePage"; import ScenePageHeader from "~/components/core/ScenePageHeader"; import EmptyState from "~/components/core/EmptyState"; const STYLES_USER_ENTRY = css` display: grid; grid-template-columns: auto 1fr; align-items: center; font-size: ${Constants.typescale.lvl1}; cursor: pointer; ${"" /* border: 1px solid ${Constants.system.lightBorder}; */} border-radius: 4px; margin-bottom: 8px; background-color: ${Constants.system.white}; `; const STYLES_USER = css` display: grid; grid-template-columns: auto 1fr; align-items: center; margin: 16px; color: ${Constants.system.brand}; font-family: ${Constants.font.medium}; font-size: ${Constants.typescale.lvl1}; @media (max-width: ${Constants.sizes.mobile}px) { margin: 12px 16px; } `; const STYLES_BUTTONS = css` justify-self: end; display: flex; flex-direction: row; margin-right: 16px; justify-content: flex-end; @media (max-width: ${Constants.sizes.mobile}px) { margin-right: 8px; } `; const STYLES_ITEM_BOX = css` position: relative; justify-self: end; display: flex; align-items: center; justify-content: center; padding: 8px; margin-right: 16px; color: ${Constants.system.darkGray}; @media (max-width: ${Constants.sizes.mobile}px) { margin-right: 8px; } `; const STYLES_ACTION_BUTTON = css` cursor: pointer; padding: 8px; color: ${Constants.system.brand}; font-family: ${Constants.font.medium}; `; const STYLES_PROFILE_IMAGE = css` background-color: ${Constants.system.foreground}; background-size: cover; background-position: 50% 50%; height: 24px; width: 24px; margin-right: 16px; border-radius: 4px; position: relative; `; const STYLES_STATUS_INDICATOR = css` position: absolute; bottom: 0; right: 0; width: 7px; height: 7px; border-radius: 50%; border: 2px solid ${Constants.system.gray50}; background-color: ${Constants.system.white}; `; const STYLES_MESSAGE = css` color: ${Constants.system.black}; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; @media (max-width: 1000px) { display: none; } `; const STYLES_NAME = css` overflow: hidden; white-space: nowrap; text-overflow: ellipsis; `; function UserEntry({ user, button, onClick, message, checkStatus }) { const isOnline = checkStatus({ id: user.id }); return (