diff options
| author | crupest <crupest@outlook.com> | 2020-09-03 23:00:38 +0800 | 
|---|---|---|
| committer | crupest <crupest@outlook.com> | 2020-09-03 23:00:38 +0800 | 
| commit | 92cc0f89d8c4314f4eebc76a0d12c9436f28f71a (patch) | |
| tree | 7a600df9aec5c812d6049d912f4cdac07c5c9f69 /Timeline/ClientApp/src/app/views/user | |
| parent | c5a3df9b035f3aa47571236aefea8108ea4e4ad4 (diff) | |
| download | timeline-92cc0f89d8c4314f4eebc76a0d12c9436f28f71a.tar.gz timeline-92cc0f89d8c4314f4eebc76a0d12c9436f28f71a.tar.bz2 timeline-92cc0f89d8c4314f4eebc76a0d12c9436f28f71a.zip | |
Extract out info card template.
Diffstat (limited to 'Timeline/ClientApp/src/app/views/user')
| -rw-r--r-- | Timeline/ClientApp/src/app/views/user/UserInfoCard.tsx | 92 | 
1 files changed, 44 insertions, 48 deletions
| diff --git a/Timeline/ClientApp/src/app/views/user/UserInfoCard.tsx b/Timeline/ClientApp/src/app/views/user/UserInfoCard.tsx index ac3a1361..4cf11e62 100644 --- a/Timeline/ClientApp/src/app/views/user/UserInfoCard.tsx +++ b/Timeline/ClientApp/src/app/views/user/UserInfoCard.tsx @@ -1,5 +1,4 @@  import React from "react"; -import clsx from "clsx";  import { useTranslation } from "react-i18next";  import { Dropdown, Button } from "react-bootstrap"; @@ -8,8 +7,7 @@ import { useAvatar } from "@/services/user";  import BlobImage from "../common/BlobImage";  import { TimelineCardComponentProps } from "../timeline-common/TimelinePageTemplateUI"; -import SyncStatusBadge from "../timeline-common/SyncStatusBadge"; -import CollapseButton from "../timeline-common/CollapseButton"; +import InfoCardTemplate from "../timeline-common/InfoCardTemplate";  export type PersonalTimelineManageItem = "avatar" | "nickname"; @@ -31,53 +29,51 @@ const UserInfoCard: React.FC<UserInfoCardProps> = (props) => {    const avatar = useAvatar(timeline?.owner?.username);    return ( -    <div className={clsx("cru-card p-2 clearfix", props.className)}> -      <div className="float-right d-flex align-items-center"> -        <SyncStatusBadge status={syncStatus} className="mr-2" /> -        <CollapseButton collapse={collapse} onClick={toggleCollapse} /> -      </div> - -      <div style={{ display: collapse ? "none" : "block" }}> -        <div> -          <BlobImage blob={avatar} className="avatar" /> -          {timeline.owner.nickname} -          <small className="ml-3 text-secondary"> -            @{timeline.owner.username} -          </small> -        </div> -        <p className="mb-0">{timeline.description}</p> -        <small className="mt-1 d-block"> -          {t(timelineVisibilityTooltipTranslationMap[timeline.visibility])} +    <InfoCardTemplate +      className={props.className} +      syncStatus={syncStatus} +      collapse={collapse} +      toggleCollapse={toggleCollapse} +    > +      <div> +        <BlobImage blob={avatar} className="avatar" /> +        {timeline.owner.nickname} +        <small className="ml-3 text-secondary"> +          @{timeline.owner.username}          </small> -        <div className="text-right mt-2"> -          {onManage != null ? ( -            <Dropdown> -              <Dropdown.Toggle variant="outline-primary"> -                {t("timeline.manage")} -              </Dropdown.Toggle> -              <Dropdown.Menu> -                <Dropdown.Item onClick={() => onManage("nickname")}> -                  {t("timeline.manageItem.nickname")} -                </Dropdown.Item> -                <Dropdown.Item onClick={() => onManage("avatar")}> -                  {t("timeline.manageItem.avatar")} -                </Dropdown.Item> -                <Dropdown.Item onClick={() => onManage("property")}> -                  {t("timeline.manageItem.property")} -                </Dropdown.Item> -                <Dropdown.Item onClick={onMember}> -                  {t("timeline.manageItem.member")} -                </Dropdown.Item> -              </Dropdown.Menu> -            </Dropdown> -          ) : ( -            <Button variant="outline-primary" onClick={onMember}> -              {t("timeline.memberButton")} -            </Button> -          )} -        </div>        </div> -    </div> +      <p className="mb-0">{timeline.description}</p> +      <small className="mt-1 d-block"> +        {t(timelineVisibilityTooltipTranslationMap[timeline.visibility])} +      </small> +      <div className="text-right mt-2"> +        {onManage != null ? ( +          <Dropdown> +            <Dropdown.Toggle variant="outline-primary"> +              {t("timeline.manage")} +            </Dropdown.Toggle> +            <Dropdown.Menu> +              <Dropdown.Item onClick={() => onManage("nickname")}> +                {t("timeline.manageItem.nickname")} +              </Dropdown.Item> +              <Dropdown.Item onClick={() => onManage("avatar")}> +                {t("timeline.manageItem.avatar")} +              </Dropdown.Item> +              <Dropdown.Item onClick={() => onManage("property")}> +                {t("timeline.manageItem.property")} +              </Dropdown.Item> +              <Dropdown.Item onClick={onMember}> +                {t("timeline.manageItem.member")} +              </Dropdown.Item> +            </Dropdown.Menu> +          </Dropdown> +        ) : ( +          <Button variant="outline-primary" onClick={onMember}> +            {t("timeline.memberButton")} +          </Button> +        )} +      </div> +    </InfoCardTemplate>    );  }; | 
