1
0
Fork 0
mirror of https://github.com/plankanban/planka.git synced 2025-07-30 18:49:44 +02:00

ref: Refactoring

This commit is contained in:
Maksim Eltyshev 2022-08-04 13:31:14 +02:00
parent aa4723d7fe
commit 3f8216dca8
189 changed files with 3781 additions and 3486 deletions

View file

@ -1,3 +0,0 @@
import Actions from './Actions';
export default Actions;

View file

@ -3,13 +3,13 @@ import PropTypes from 'prop-types';
import { useTranslation } from 'react-i18next';
import { Button, Comment, Icon, Loader, Visibility } from 'semantic-ui-react';
import { ActionTypes } from '../../../constants/Enums';
import { ActivityTypes } from '../../../constants/Enums';
import CommentAdd from './CommentAdd';
import Item from './Item';
import styles from './Actions.module.scss';
import styles from './Activities.module.scss';
const Actions = React.memo(
const Activities = React.memo(
({
items,
isFetching,
@ -60,7 +60,7 @@ const Actions = React.memo(
<div className={styles.wrapper}>
<Comment.Group>
{items.map((item) =>
item.type === ActionTypes.COMMENT_CARD ? (
item.type === ActivityTypes.COMMENT_CARD ? (
<Item.Comment
key={item.id}
data={item.data}
@ -94,7 +94,7 @@ const Actions = React.memo(
},
);
Actions.propTypes = {
Activities.propTypes = {
items: PropTypes.array.isRequired, // eslint-disable-line react/forbid-prop-types
isFetching: PropTypes.bool.isRequired,
isAllFetched: PropTypes.bool.isRequired,
@ -109,4 +109,4 @@ Actions.propTypes = {
onCommentDelete: PropTypes.func.isRequired,
};
export default Actions;
export default Activities;

View file

@ -4,7 +4,7 @@ import classNames from 'classnames';
import { useTranslation, Trans } from 'react-i18next';
import { Comment } from 'semantic-ui-react';
import { ActionTypes } from '../../../constants/Enums';
import { ActivityTypes } from '../../../constants/Enums';
import ItemComment from './ItemComment';
import User from '../../User';
@ -16,7 +16,7 @@ const Item = React.memo(({ type, data, createdAt, user }) => {
let contentNode;
switch (type) {
case ActionTypes.CREATE_CARD:
case ActivityTypes.CREATE_CARD:
contentNode = (
<Trans
i18nKey="common.userAddedThisCardToList"
@ -34,7 +34,7 @@ const Item = React.memo(({ type, data, createdAt, user }) => {
);
break;
case ActionTypes.MOVE_CARD:
case ActivityTypes.MOVE_CARD:
contentNode = (
<Trans
i18nKey="common.userMovedThisCardFromListToList"

View file

@ -0,0 +1,3 @@
import Activities from './Activities';
export default Activities;

View file

@ -11,7 +11,7 @@ import Tasks from './Tasks';
import Attachments from './Attachments';
import AttachmentAddZone from './AttachmentAddZone';
import AttachmentAddPopup from './AttachmentAddPopup';
import Actions from './Actions';
import Activities from './Activities';
import User from '../User';
import Label from '../Label';
import DueDate from '../DueDate';
@ -32,10 +32,10 @@ const CardModal = React.memo(
dueDate,
timer,
isSubscribed,
isActionsFetching,
isAllActionsFetched,
isActionsDetailsVisible,
isActionsDetailsFetching,
isActivitiesFetching,
isAllActivitiesFetched,
isActivitiesDetailsVisible,
isActivitiesDetailsFetching,
listId,
boardId,
projectId,
@ -43,12 +43,12 @@ const CardModal = React.memo(
labels,
tasks,
attachments,
actions,
activities,
allProjectsToLists,
allBoardMemberships,
allLabels,
canEdit,
canEditAllCommentActions,
canEditAllCommentActivities,
onUpdate,
onMove,
onTransfer,
@ -68,11 +68,11 @@ const CardModal = React.memo(
onAttachmentCreate,
onAttachmentUpdate,
onAttachmentDelete,
onActionsFetch,
onActionsDetailsToggle,
onCommentActionCreate,
onCommentActionUpdate,
onCommentActionDelete,
onActivitiesFetch,
onActivitiesDetailsToggle,
onCommentActivityCreate,
onCommentActivityUpdate,
onCommentActivityDelete,
onClose,
}) => {
const [t] = useTranslation();
@ -357,19 +357,19 @@ const CardModal = React.memo(
</div>
</div>
)}
<Actions
items={actions}
isFetching={isActionsFetching}
isAllFetched={isAllActionsFetched}
isDetailsVisible={isActionsDetailsVisible}
isDetailsFetching={isActionsDetailsFetching}
<Activities
items={activities}
isFetching={isActivitiesFetching}
isAllFetched={isAllActivitiesFetched}
isDetailsVisible={isActivitiesDetailsVisible}
isDetailsFetching={isActivitiesDetailsFetching}
canEdit={canEdit}
canEditAllComments={canEditAllCommentActions}
onFetch={onActionsFetch}
onDetailsToggle={onActionsDetailsToggle}
onCommentCreate={onCommentActionCreate}
onCommentUpdate={onCommentActionUpdate}
onCommentDelete={onCommentActionDelete}
canEditAllComments={canEditAllCommentActivities}
onFetch={onActivitiesFetch}
onDetailsToggle={onActivitiesDetailsToggle}
onCommentCreate={onCommentActivityCreate}
onCommentUpdate={onCommentActivityUpdate}
onCommentDelete={onCommentActivityDelete}
/>
</Grid.Column>
{canEdit && (
@ -490,10 +490,10 @@ CardModal.propTypes = {
dueDate: PropTypes.instanceOf(Date),
timer: PropTypes.object, // eslint-disable-line react/forbid-prop-types
isSubscribed: PropTypes.bool.isRequired,
isActionsFetching: PropTypes.bool.isRequired,
isAllActionsFetched: PropTypes.bool.isRequired,
isActionsDetailsVisible: PropTypes.bool.isRequired,
isActionsDetailsFetching: PropTypes.bool.isRequired,
isActivitiesFetching: PropTypes.bool.isRequired,
isAllActivitiesFetched: PropTypes.bool.isRequired,
isActivitiesDetailsVisible: PropTypes.bool.isRequired,
isActivitiesDetailsFetching: PropTypes.bool.isRequired,
listId: PropTypes.string.isRequired,
boardId: PropTypes.string.isRequired,
projectId: PropTypes.string.isRequired,
@ -502,13 +502,13 @@ CardModal.propTypes = {
labels: PropTypes.array.isRequired,
tasks: PropTypes.array.isRequired,
attachments: PropTypes.array.isRequired,
actions: PropTypes.array.isRequired,
activities: PropTypes.array.isRequired,
allProjectsToLists: PropTypes.array.isRequired,
allBoardMemberships: PropTypes.array.isRequired,
allLabels: PropTypes.array.isRequired,
/* eslint-enable react/forbid-prop-types */
canEdit: PropTypes.bool.isRequired,
canEditAllCommentActions: PropTypes.bool.isRequired,
canEditAllCommentActivities: PropTypes.bool.isRequired,
onUpdate: PropTypes.func.isRequired,
onMove: PropTypes.func.isRequired,
onTransfer: PropTypes.func.isRequired,
@ -528,11 +528,11 @@ CardModal.propTypes = {
onAttachmentCreate: PropTypes.func.isRequired,
onAttachmentUpdate: PropTypes.func.isRequired,
onAttachmentDelete: PropTypes.func.isRequired,
onActionsFetch: PropTypes.func.isRequired,
onActionsDetailsToggle: PropTypes.func.isRequired,
onCommentActionCreate: PropTypes.func.isRequired,
onCommentActionUpdate: PropTypes.func.isRequired,
onCommentActionDelete: PropTypes.func.isRequired,
onActivitiesFetch: PropTypes.func.isRequired,
onActivitiesDetailsToggle: PropTypes.func.isRequired,
onCommentActivityCreate: PropTypes.func.isRequired,
onCommentActivityUpdate: PropTypes.func.isRequired,
onCommentActivityDelete: PropTypes.func.isRequired,
onClose: PropTypes.func.isRequired,
};

View file

@ -7,7 +7,7 @@ import { withPopup } from '../../lib/popup';
import { Popup } from '../../lib/custom-ui';
import Paths from '../../constants/Paths';
import { ActionTypes } from '../../constants/Enums';
import { ActivityTypes } from '../../constants/Enums';
import User from '../User';
import styles from './NotificationsPopup.module.scss';
@ -23,42 +23,42 @@ const NotificationsStep = React.memo(({ items, onDelete, onClose }) => {
);
const renderItemContent = useCallback(
({ action, card }) => {
switch (action.type) {
case ActionTypes.MOVE_CARD:
({ activity, card }) => {
switch (activity.type) {
case ActivityTypes.MOVE_CARD:
return (
<Trans
i18nKey="common.userMovedCardFromListToList"
values={{
user: action.user.name,
user: activity.user.name,
card: card.name,
fromList: action.data.fromList.name,
toList: action.data.toList.name,
fromList: activity.data.fromList.name,
toList: activity.data.toList.name,
}}
>
{action.user.name}
{activity.user.name}
{' moved '}
<Link to={Paths.CARDS.replace(':id', card.id)} onClick={onClose}>
{card.name}
</Link>
{' from '}
{action.data.fromList.name}
{activity.data.fromList.name}
{' to '}
{action.data.toList.name}
{activity.data.toList.name}
</Trans>
);
case ActionTypes.COMMENT_CARD:
case ActivityTypes.COMMENT_CARD:
return (
<Trans
i18nKey="common.userLeftNewCommentToCard"
values={{
user: action.user.name,
comment: action.data.text,
user: activity.user.name,
comment: activity.data.text,
card: card.name,
}}
>
{action.user.name}
{` left a new comment «${action.data.text}» to `}
{activity.user.name}
{` left a new comment «${activity.data.text}» to `}
<Link to={Paths.CARDS.replace(':id', card.id)} onClick={onClose}>
{card.name}
</Link>
@ -79,11 +79,11 @@ const NotificationsStep = React.memo(({ items, onDelete, onClose }) => {
{items.length > 0
? items.map((item) => (
<div key={item.id} className={styles.wrapper}>
{item.card && item.action ? (
{item.card && item.activity ? (
<>
<User
name={item.action.user.name}
avatarUrl={item.action.user.avatarUrl}
name={item.activity.user.name}
avatarUrl={item.activity.user.avatarUrl}
size="large"
/>
<span className={styles.content}>{renderItemContent(item)}</span>

View file

@ -101,7 +101,7 @@ const ActionsStep = React.memo(
<UserPasswordEditStep
defaultData={user.passwordUpdateForm.data}
isSubmitting={user.passwordUpdateForm.isSubmitting}
error={user.emailUpdateForm.error}
error={user.passwordUpdateForm.error}
onUpdate={onPasswordUpdate}
onMessageDismiss={onPasswordUpdateMessageDismiss}
onBack={handleBack}