aboutsummaryrefslogtreecommitdiff
path: root/FrontEnd/src/views/timeline-common/TimelineMember.tsx
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2021-07-01 20:38:28 +0800
committerGitHub <noreply@github.com>2021-07-01 20:38:28 +0800
commiteb306e98fb94fdfbced7b7e91ffb3d85ecb28c2c (patch)
tree5afe2d654a51c8712aa30a419f6edfa19fe1a234 /FrontEnd/src/views/timeline-common/TimelineMember.tsx
parent825aac426d87180e62530321320fbb012efbd897 (diff)
parentb456334cedad566bf2c4c66481ec928dc59eda7d (diff)
downloadtimeline-eb306e98fb94fdfbced7b7e91ffb3d85ecb28c2c.tar.gz
timeline-eb306e98fb94fdfbced7b7e91ffb3d85ecb28c2c.tar.bz2
timeline-eb306e98fb94fdfbced7b7e91ffb3d85ecb28c2c.zip
Merge pull request #649 from crupest/drop-bootstrap
Drop bootstrap!!!
Diffstat (limited to 'FrontEnd/src/views/timeline-common/TimelineMember.tsx')
-rw-r--r--FrontEnd/src/views/timeline-common/TimelineMember.tsx62
1 files changed, 30 insertions, 32 deletions
diff --git a/FrontEnd/src/views/timeline-common/TimelineMember.tsx b/FrontEnd/src/views/timeline-common/TimelineMember.tsx
index 299d6a53..0ebecbb9 100644
--- a/FrontEnd/src/views/timeline-common/TimelineMember.tsx
+++ b/FrontEnd/src/views/timeline-common/TimelineMember.tsx
@@ -1,49 +1,47 @@
import React, { useState } from "react";
import { useTranslation } from "react-i18next";
-import { Container, ListGroup, Modal, Row, Col, Button } from "react-bootstrap";
import { convertI18nText, I18nText } from "@/common";
import { HttpUser } from "@/http/user";
import { getHttpSearchClient } from "@/http/search";
+import { getHttpTimelineClient, HttpTimelineInfo } from "@/http/timeline";
import SearchInput from "../common/SearchInput";
import UserAvatar from "../common/user/UserAvatar";
-import { getHttpTimelineClient, HttpTimelineInfo } from "@/http/timeline";
+import Button from "../common/button/Button";
+import Dialog from "../common/dailog/Dialog";
+
+import "./TimelineMember.css";
const TimelineMemberItem: React.FC<{
user: HttpUser;
add?: boolean;
onAction?: (username: string) => void;
}> = ({ user, add, onAction }) => {
- const { t } = useTranslation();
-
return (
- <ListGroup.Item className="container">
- <Row>
- <Col xs="auto">
- <UserAvatar username={user.username} className="avatar small" />
- </Col>
- <Col>
- <Row>{user.nickname}</Row>
- <Row>
- <small>{"@" + user.username}</small>
- </Row>
- </Col>
+ <div className="container timeline-member-item">
+ <div className="row">
+ <div className="col col-auto">
+ <UserAvatar username={user.username} className="cru-avatar small" />
+ </div>
+ <div className="col">
+ <div className="row">{user.nickname}</div>
+ <small className="row">{"@" + user.username}</small>
+ </div>
{onAction ? (
- <Col xs="auto">
+ <div className="col col-auto">
<Button
- variant={add ? "success" : "danger"}
+ text={`timeline.member.${add ? "add" : "remove"}`}
+ color={add ? "success" : "danger"}
onClick={() => {
onAction(user.username);
}}
- >
- {t(`timeline.member.${add ? "add" : "remove"}`)}
- </Button>
- </Col>
+ />
+ </div>
) : null}
- </Row>
- </ListGroup.Item>
+ </div>
+ </div>
);
};
@@ -110,7 +108,7 @@ const TimelineMemberUserSearch: React.FC<{
return <div>{t("timeline.member.noUserAvailableToAdd")}</div>;
} else {
return (
- <ListGroup className="mt-2">
+ <div className="mt-2">
{users.map((user) => (
<TimelineMemberItem
key={user.username}
@@ -127,12 +125,12 @@ const TimelineMemberUserSearch: React.FC<{
}}
/>
))}
- </ListGroup>
+ </div>
);
}
} else if (userSearchState.type === "error") {
return (
- <div className="text-danger">
+ <div className="cru-color-danger">
{convertI18nText(userSearchState.data, t)}
</div>
);
@@ -152,8 +150,8 @@ const TimelineMember: React.FC<TimelineMemberProps> = (props) => {
const members = [timeline.owner, ...timeline.members];
return (
- <Container className="px-4 py-3">
- <ListGroup>
+ <div className="container px-4 py-3">
+ <div>
{members.map((member, index) => (
<TimelineMemberItem
key={member.username}
@@ -169,11 +167,11 @@ const TimelineMember: React.FC<TimelineMemberProps> = (props) => {
}
/>
))}
- </ListGroup>
+ </div>
{timeline.manageable ? (
<TimelineMemberUserSearch timeline={timeline} onChange={onChange} />
) : null}
- </Container>
+ </div>
);
};
@@ -188,8 +186,8 @@ export const TimelineMemberDialog: React.FC<TimelineMemberDialogProps> = (
props
) => {
return (
- <Modal show centered onHide={props.onClose}>
+ <Dialog open onClose={props.onClose}>
<TimelineMember {...props} />
- </Modal>
+ </Dialog>
);
};