From 557c6470f576a234832ffde217540f1dc8903a73 Mon Sep 17 00:00:00 2001 From: mgabdev <> Date: Fri, 6 Mar 2020 23:53:28 -0500 Subject: [PATCH] Progress --- app/javascript/gabsocial/actions/timelines.js | 2 +- app/javascript/gabsocial/assets/happy_icon.js | 26 ++ app/javascript/gabsocial/assets/index.js | 2 + .../autosuggest_textbox.js | 45 +- app/javascript/gabsocial/components/button.js | 15 +- .../gabsocial/components/column_header.js | 62 ++- app/javascript/gabsocial/components/icon.js | 2 + app/javascript/gabsocial/components/input.js | 9 +- .../gabsocial/components/media_item.js | 30 +- .../components/modal/compose_modal.js | 11 +- .../gabsocial/components/modal/modal_base.js | 2 +- .../components/modal/modal_layout.js | 16 +- .../components/panel/media_gallery_panel.js | 58 ++- .../components/panel/profile_info_panel.js | 3 +- .../gabsocial/components/poll/poll.js | 256 ++++++----- app/javascript/gabsocial/components/select.js | 41 ++ .../gabsocial/components/status/status.js | 32 +- .../gabsocial/components/status_action_bar.js | 93 ++-- .../components/status_action_bar_item.js | 2 +- .../components/timeline_compose_block.js | 24 +- .../gabsocial/containers/status_container.js | 3 + .../components/compose_extra_button.js | 29 +- .../components/compose_form/compose_form.js | 53 ++- .../compose/components/emoji_picker_button.js | 56 +++ .../compose/components/poll_button.js | 25 +- .../features/compose/components/poll_form.js | 247 +++++++++++ .../compose/components/poll_form/index.js | 1 - .../compose/components/poll_form/poll_form.js | 161 ------- .../components/poll_form/poll_form.scss | 10 - .../compose/components/spoiler_button.js | 1 + .../compose/components/upload/upload.js | 62 ++- .../compose/components/warning/index.js | 1 - .../compose/components/warning/warning.js | 24 -- .../compose/components/warning/warning.scss | 33 -- .../compose/containers/warning_container.js | 41 -- .../gabsocial/features/status/status.js | 3 +- .../gabsocial/features/video/video.js | 404 ++++++++++-------- .../gabsocial/features/video/video.scss | 165 ------- app/javascript/styles/global.css | 90 +++- package.json | 1 - yarn.lock | 146 +------ 41 files changed, 1181 insertions(+), 1106 deletions(-) create mode 100644 app/javascript/gabsocial/assets/happy_icon.js create mode 100644 app/javascript/gabsocial/components/select.js create mode 100644 app/javascript/gabsocial/features/compose/components/emoji_picker_button.js create mode 100644 app/javascript/gabsocial/features/compose/components/poll_form.js delete mode 100644 app/javascript/gabsocial/features/compose/components/poll_form/index.js delete mode 100644 app/javascript/gabsocial/features/compose/components/poll_form/poll_form.js delete mode 100644 app/javascript/gabsocial/features/compose/components/poll_form/poll_form.scss delete mode 100644 app/javascript/gabsocial/features/compose/components/warning/index.js delete mode 100644 app/javascript/gabsocial/features/compose/components/warning/warning.js delete mode 100644 app/javascript/gabsocial/features/compose/components/warning/warning.scss delete mode 100644 app/javascript/gabsocial/features/compose/containers/warning_container.js diff --git a/app/javascript/gabsocial/actions/timelines.js b/app/javascript/gabsocial/actions/timelines.js index 67e60feb..722a4cea 100644 --- a/app/javascript/gabsocial/actions/timelines.js +++ b/app/javascript/gabsocial/actions/timelines.js @@ -157,7 +157,7 @@ export const expandPublicTimeline = ({ maxId, onlyMedia } = {}, done = noOp) => export const expandCommunityTimeline = ({ maxId, onlyMedia } = {}, done = noOp) => expandTimeline(`community${onlyMedia ? ':media' : ''}`, '/api/v1/timelines/public', { local: true, max_id: maxId, only_media: !!onlyMedia }, done); export const expandAccountTimeline = (accountId, { maxId, withReplies } = {}) => expandTimeline(`account:${accountId}${withReplies ? ':with_replies' : ''}`, `/api/v1/accounts/${accountId}/statuses`, { exclude_replies: !withReplies, max_id: maxId }); export const expandAccountFeaturedTimeline = accountId => expandTimeline(`account:${accountId}:pinned`, `/api/v1/accounts/${accountId}/statuses`, { pinned: true }); -export const expandAccountMediaTimeline = (accountId, { maxId } = {}) => expandTimeline(`account:${accountId}:media`, `/api/v1/accounts/${accountId}/statuses`, { max_id: maxId, only_media: true, limit: 20 }); +export const expandAccountMediaTimeline = (accountId, { maxId, limit } = {}) => expandTimeline(`account:${accountId}:media`, `/api/v1/accounts/${accountId}/statuses`, { max_id: maxId, only_media: true, limit: limit || 20 }); export const expandListTimeline = (id, { maxId } = {}, done = noOp) => expandTimeline(`list:${id}`, `/api/v1/timelines/list/${id}`, { max_id: maxId }, done); export const expandGroupTimeline = (id, { maxId } = {}, done = noOp) => expandTimeline(`group:${id}`, `/api/v1/timelines/group/${id}`, { max_id: maxId }, done); export const expandHashtagTimeline = (hashtag, { maxId, tags } = {}, done = noOp) => { diff --git a/app/javascript/gabsocial/assets/happy_icon.js b/app/javascript/gabsocial/assets/happy_icon.js new file mode 100644 index 00000000..86ace91b --- /dev/null +++ b/app/javascript/gabsocial/assets/happy_icon.js @@ -0,0 +1,26 @@ +const HappyIcon = ({ + className = '', + width = '16px', + height = '16px', + viewBox = '0 0 64 64', + title = '', +}) => ( + + + + + +) + +export default HappyIcon \ No newline at end of file diff --git a/app/javascript/gabsocial/assets/index.js b/app/javascript/gabsocial/assets/index.js index 12c6d9ef..642abcef 100644 --- a/app/javascript/gabsocial/assets/index.js +++ b/app/javascript/gabsocial/assets/index.js @@ -15,6 +15,7 @@ import ErrorIcon from './error_icon' import FullscreenIcon from './fullscreen_icon' import GlobeIcon from './globe_icon' import GroupIcon from './group_icon' +import HappyIcon from './happy_icon' import HomeIcon from './home_icon' import LikeIcon from './like_icon' import LinkIcon from './link_icon' @@ -57,6 +58,7 @@ export { FullscreenIcon, GlobeIcon, GroupIcon, + HappyIcon, HomeIcon, LikeIcon, LinkIcon, diff --git a/app/javascript/gabsocial/components/autosuggest_textbox/autosuggest_textbox.js b/app/javascript/gabsocial/components/autosuggest_textbox/autosuggest_textbox.js index 5f0f8816..cf862011 100644 --- a/app/javascript/gabsocial/components/autosuggest_textbox/autosuggest_textbox.js +++ b/app/javascript/gabsocial/components/autosuggest_textbox/autosuggest_textbox.js @@ -1,12 +1,13 @@ import { Fragment } from 'react' -import ImmutablePropTypes from 'react-immutable-proptypes'; +import ImmutablePropTypes from 'react-immutable-proptypes' import classNames from 'classnames/bind' -import ImmutablePureComponent from 'react-immutable-pure-component'; -import Textarea from 'react-textarea-autosize'; -import { isRtl } from '../../utils/rtl'; -import { textAtCursorMatchesToken } from '../../utils/cursor_token_match'; -import AutosuggestAccount from '../autosuggest_account'; -import AutosuggestEmoji from '../autosuggest_emoji'; +import ImmutablePureComponent from 'react-immutable-pure-component' +import Textarea from 'react-textarea-autosize' +import { isRtl } from '../../utils/rtl' +import { textAtCursorMatchesToken } from '../../utils/cursor_token_match' +import AutosuggestAccount from '../autosuggest_account' +import AutosuggestEmoji from '../autosuggest_emoji' +import Input from '../input' const cx = classNames.bind(_s) @@ -191,12 +192,24 @@ export default class AutosuggestTextbox extends ImmutablePureComponent { } render () { - const { value, small, suggestions, disabled, placeholder, onKeyUp, autoFocus, children, className, id, maxLength, textarea } = this.props; - const { suggestionsHidden } = this.state; - const style = { direction: 'ltr' }; + const { + value, + small, + suggestions, + disabled, + placeholder, + onKeyUp, + autoFocus, + children, + className, + id, + maxLength, + textarea + } = this.props - if (isRtl(value)) { - style.direction = 'rtl'; + const { suggestionsHidden } = this.state + const style = { + direction: isRtl(value) ? 'rtl' : 'ltr', } const textClasses = cx({ @@ -217,7 +230,7 @@ export default class AutosuggestTextbox extends ImmutablePureComponent { if (textarea) { return ( - +