From 371f47f866cdf23f5a4e54961baeacb23496a730 Mon Sep 17 00:00:00 2001 From: Fedor Katurov Date: Tue, 12 Nov 2019 15:15:45 +0700 Subject: [PATCH] messages form --- src/components/input/LoaderCircle/index.tsx | 4 +-- src/components/profile/MessageForm/index.tsx | 33 +++++++++++++++---- .../profile/MessageForm/styles.scss | 25 +++++++++++++- .../profile/ProfileLoader/index.tsx | 15 +++++++++ .../profile/ProfileLoader/styles.scss | 6 ++++ .../profile/ProfileMessages/index.tsx | 4 +++ src/redux/auth/sagas.ts | 27 +++++++++++---- 7 files changed, 98 insertions(+), 16 deletions(-) create mode 100644 src/containers/profile/ProfileLoader/index.tsx create mode 100644 src/containers/profile/ProfileLoader/styles.scss diff --git a/src/components/input/LoaderCircle/index.tsx b/src/components/input/LoaderCircle/index.tsx index c99578db..49c2fbe6 100644 --- a/src/components/input/LoaderCircle/index.tsx +++ b/src/components/input/LoaderCircle/index.tsx @@ -1,14 +1,14 @@ import React, { FC } from 'react'; import * as styles from './styles.scss'; -import { Icon } from '../Icon'; import { describeArc } from '~/utils/dom'; +import classNames from 'classnames'; interface IProps { size?: number; } export const LoaderCircle: FC = ({ size = 24 }) => ( -
+
diff --git a/src/components/profile/MessageForm/index.tsx b/src/components/profile/MessageForm/index.tsx index 202c231b..7149f5f7 100644 --- a/src/components/profile/MessageForm/index.tsx +++ b/src/components/profile/MessageForm/index.tsx @@ -1,4 +1,4 @@ -import React, { FC, useState, useCallback } from 'react'; +import React, { FC, useState, useCallback, KeyboardEventHandler } from 'react'; import styles from './styles.scss'; import { Textarea } from '~/components/input/Textarea'; import { Filler } from '~/components/containers/Filler'; @@ -21,7 +21,7 @@ const mapDispatchToProps = { type IProps = ReturnType & typeof mapDispatchToProps & {}; const MessageFormUnconnected: FC = ({ - profile: { is_sending_messages, messages_error }, + profile: { is_sending_messages, is_loading_messages, messages_error }, authSendMessage, }) => { const [text, setText] = useState(''); @@ -34,14 +34,35 @@ const MessageFormUnconnected: FC = ({ authSendMessage({ text }, onSuccess); }, [authSendMessage, text, onSuccess]); + const onKeyDown = useCallback>( + ({ ctrlKey, key }) => { + if (!!ctrlKey && key === 'Enter') onSubmit(); + }, + [onSubmit] + ); + return (
{messages_error &&
{ERROR_LITERAL[messages_error]}
} - + {is_loading_messages && !messages_error && ( + + +
Обновляем
+
+ )} -