Commit graph

109 commits

Author SHA1 Message Date
Akihiko Odaki
3b8a64e94e Fix the usages of Detect Passive Events (#4749) 2017-08-31 11:20:54 +02:00
abcang
4ce06cc0c9 Generalized the infinite scrollable list (#4697) 2017-08-28 22:23:44 +02:00
Eugen Rochko
3e20cb7025 Pinned statuses (#4675)
* Pinned statuses

* yarn manage:translations
2017-08-25 01:41:18 +02:00
Sorin Davidoi
ed7abec8f5 feat: Cache status height to avoid expensive renders (#4439)
* feat: Cache status height to avoid expensive renders

* feat: Escape content and emojify in reducers

* fix(css): Remove backface-visibility: hidden from .scrollable

* fix(statuses): Avoid creating DOMParses inside a loop
2017-08-07 20:32:03 +02:00
Ondřej Hruška
199affb141 Refactor Avatar and AvatarOverlay to have 'account' as prop instead of src and staticSrc (#4526)
* Refactored Avatar and AvatarOverlay (DRY) to have 'account' as prop.
Also removed animate attribute from compose navigation bar, which should
have never been there. Added test for avatar overlay.

* fix broken tests

* god dammit another bug in tests! travis please let this pass

* formatting in avatar overlay
2017-08-07 19:44:55 +02:00
Akihiko Odaki
c4a21aa352 Scroll columns area to right when children property is changed (#4517)
The feature to pin column could hide the rightmost column, which is
specified with children property of ColumnsArea.

The user is likely to see the column when the property changed, so scroll
the area in such cases.
2017-08-04 18:57:46 +02:00
Sorin Davidoi
9fc6c974f6 fix(status_list): Use correct keys for keyboard navigation (#4487) 2017-08-02 13:09:09 +02:00
Sorin Davidoi
2032e2500c Improve accessibility (part 7) (#4457)
* fix(media_modal): Keyboard navigation

* fix(column_back_button): Use native button

* fix(media_gallery): Keyboard navigation

* fix(status_content): Make CW content focusable
2017-07-31 00:18:15 +02:00
unarist
de3a2eaf4d fix(status): Don't add tabIndex to wrapped status (#4437) 2017-07-29 14:20:05 +02:00
Sorin Davidoi
56e35ab6e7 Improve accessibility (part 6) (#4435)
* fix(status_action_bar): Use aria-pressed for reblog and favourite button

* fix(column_back_button): Keyboard accessible

* fix(status_content): Make focusable and accessible

* fix(dropdown_menu): Use aria-expanded instead of aria-pressed

* fix(emoji_picker_dropdown): Use aria-expanded instead of aria-hidden

* feat(icon_button): Add aria-expanded

* fix(privacy_dropdown): Use aria-expanded instead of aria-hidden
2017-07-29 01:58:53 +02:00
Sorin Davidoi
aa108f8570 Accessability fixes (#4432)
* fix(modal_root): Read type from props, not from component

* fix(status_list): Do not user event.path
2017-07-28 22:55:19 +02:00
Sorin Davidoi
fd6c6cf717 Improve accessibility (part 5) (#4417)
* fix(status): Add tabIndex=0

* fix(status_list): Make keyboard navigable
2017-07-28 13:33:40 +02:00
Yamagishi Kazutoshi
c196698be5 Fix broken PropTypes (#4413) 2017-07-28 13:32:05 +02:00
Sorin Davidoi
3ddfab69a5 Improve accessibility (part 4) (#4408)
* fix(dropdown_menu): Keyboard navigation

* fix(icon_button): Add aria-pressed attribute

* fix(privacy_dropdown): Make accessible

* fix(emoji_picker_dropdown): Make accessible

* fix(icon_button): Support tabIndex

* fix(actions_modal): Remove icon from tab order

* fix(dropdown_menu): Add role=group

* fix(setting_toggle): Toggle via space key

* fix(dropdown_menu): Remove redundant handling of Space key

* fix(emoji_picker_dropdown): Remove redundant Space key handling

* fix(privacy_dropdown): Remove redundant Space key handling

* fix(status): Switch to article and add aria-posinset, aria-setsize

* fix(status_list): Use role=feed and pass more ARIA props to Status

* chore(eslint): jsx-a11y/role-supports-aria-props
2017-07-28 04:37:30 +02:00
Sorin Davidoi
8a9d376d6a Improve accessibility (part 3) (#4405)
* fix(compose): Add aria-label for the navigation links

* fix(search): Add input label

* fix(navigation_bar): Link description

* fix(autosuggest_textarea): Add input label

* fix(compose_form): Add input label

* fix(upload_button): Add input label

* fix(account/header): Add link content

* fix(column_header): Use h1 tag

* fix(column_header): Labels move buttons moving column

* fix(settings_text): Add label to input

* fix(column_header): Remove role from h1

* fix(modal_root): Use role=dialog

* fix(modal_root): Focus restauration

* fix(modal_root): Apply inert to sibligs

* fix(column_header): Add role=button

* chore(eslint): Disable jsx-a11y/label-has-for
2017-07-28 00:54:48 +02:00
Sorin Davidoi
9cb72c6600 fix(dropdown_menu): Open as modal on mobile (#4295)
* fix(dropdown_menu): Open as modal on mobile

* fix(dropdown_menu): Open modal on touch

* fix(dropdown_menu): Show status

* fix(dropdown_menu): Max dimensions and reduce padding

* chore(dropdown_menu): Test new functionality

* refactor: Use DropdownMenuContainer instead of DropdownMenu

* feat(privacy_dropdown): Open as modal on touch devices

* feat(modal_root): Do not load actions-modal async
2017-07-27 22:31:59 +02:00
Yamagishi Kazutoshi
fdea9d72bc Update intersection-observer to version 0.4.0 (#4398) 2017-07-27 16:20:48 +02:00
Eugen Rochko
24ab0958f9 Fix infinite scroll fluidity (#4381) 2017-07-26 23:35:03 +02:00
Sorin Davidoi
8345b4d79a Improve accessibility (part 2) (#4377)
* fix(column_header): Invalid ARIA role

* fix(column): Remove hidden nodes from the DOM

* refactor(column_link): Remove unused property hideOnMobile

* fix(column_header): Use aria-pressed

* fix(column_header): Make collapsed content not focusable, add focusable property

* fix(column_loading): Make header non-focusable

* fix(column_settings): Use role to group the toggles
2017-07-26 13:46:53 +02:00
Sorin Davidoi
9582932d0a Improve accessibility (#4369)
* fix(compose): Use nav and remove redundant aria-label

* fix(tabs_tab): Use nav and add aria-label

* fix(app): Add aria-label for settings toggle button

* chore: Run yarn manage:translations
2017-07-26 02:01:27 +02:00
Sorin Davidoi
b504cdb82e feat(status_action_bar): Web share button (#4365) 2017-07-25 20:38:39 +02:00
Sorin Davidoi
348994c2de fix(status_list): Guard against missing ref (#4353) 2017-07-25 02:13:05 +02:00
Sorin Davidoi
3e17162902 fix(column): Use passive wheel listener (#4348)
* chore(yarn): Install detect-passive-events

* fix(column): Use passive listener
2017-07-25 01:05:51 +02:00
Eugen Rochko
0b14f80814 Add loading indicator animation (#4316) 2017-07-23 20:28:18 +02:00
Sorin Davidoi
707d6fa9c0 fix(status_list): Update scroll position after toots are appended (#4277) 2017-07-19 22:38:26 +02:00
unarist
c44fcfd9e7 Update scroll top state on column mounting (#4276) 2017-07-19 20:26:51 +02:00
abcang
c5cd48bff7 Fixed issue that the NSFW image is not hidden on detail page (#4244) 2017-07-18 15:24:57 +02:00
Lynx Kotoura
64202d0fcf Quit overwriting style of extended-video-player (#4237)
Though size of extended-video-player is already fixed to 80vw*80vh in components.scss, player size was also set to original video size in extended_video_player.js. Video size is fixed to 80vw*80vh, so video player's size must also be fixed to 80vw*80vh.
2017-07-17 19:05:29 +02:00
Sorin Davidoi
20111dd4d5 Small style fixes (#4206)
* fix(components/media_modal): Center horizontally in Firefox

* fix(components/status_list): Do not remove load more button
2017-07-14 22:31:25 +02:00
Sorin Davidoi
b047d5c747 fix(components/media_modal): Style issues (#4187) 2017-07-13 22:18:18 +02:00
Eugen Rochko
49026e27e8 Redesign the landing page, mount public timeline on it (#4122)
* Redesign the landing page, mount public timeline on it

* Adjust the standalone mounted component to the lacking of router

* Adjust auth layout pages to new design

* Fix tests

* Standalone public timeline polling every 5 seconds

* Remove now obsolete translations

* Add responsive design for new landing page

* Address reviews

* Add floating clouds behind frontpage form

* Use access token from public page when available

* Fix mentions and hashtags links, cursor on status content in standalone mode

* Add footer link to source code

* Fix errors on pages that don't embed the component, use classnames

* Fix tests

* Change anonymous autoPlayGif default to false

* When gif autoplay is disabled, hover to play

* Add option to hide the timeline preview

* Slightly improve alt layout

* Add elephant friend to new frontpage

* Display "back to mastodon" in place of "login" when logged in on frontpage

* Change polling time to 3s
2017-07-11 15:27:59 +02:00
Sorin Davidoi
420c4d8dc8 Swipeable views (#4105)
* feat: Replace react-swipeable with react-swipeable-views

* fix: iOS 9
2017-07-09 15:02:26 +02:00
Yamagishi Kazutoshi
aaa7f3ff41 Use srcSet only when know width (#4112) 2017-07-08 17:20:53 +02:00
Nolan Lawson
01ee91b725 Avoid using getBoundingClientRect to calculate height (#4001) 2017-07-08 01:57:22 +02:00
Sorin Davidoi
40b32ffb12 Lazy load components (#3879)
* feat: Lazy-load routes

* feat: Lazy-load modals

* feat: Lazy-load columns

* refactor: Simplify Bundle API

* feat: Optimize bundles

* feat: Prevent flashing the waiting state

* feat: Preload commonly used bundles

* feat: Lazy load Compose reducers

* feat: Lazy load Notifications reducer

* refactor: Move all dynamic imports into one file

* fix: Minor bugs

* fix: Manually hydrate the lazy-loaded reducers

* refactor: Move all dynamic imports to async-components

* fix: Loading modal style

* refactor: Avoid converting the raw state for each lazy hydration

* refactor: Remove unused component

* refactor: Maintain modal name

* fix: Add as=script to preload link

* chore: Fix lint error

* fix(components/bundle): Check if timestamp is set when computing elapsed

* fix: Load compose reducers for the onboarding modal
2017-07-08 00:06:02 +02:00
STJrInuyasha
b03812ef19 Parse links in status content on update as well as mount (#4042)
* Update links in status content on update as well as mount
Fixes occasional bugs with mentions and hashtags not being set to open in a new column like they should, and instead opening in a new page

* use classList instead of raw className
2017-07-06 21:30:37 +02:00
unarist
1e71b683bc Unobserve status on unmount (#4013)
This fixes a warning on status unmounting (e.g. deletion).

This also resets IntersectionObserverWrapper on disconnect to avoid `unobserve()` calls
which has bug in Edge.
2017-07-06 21:26:21 +02:00
Sorin Davidoi
eea5c01a41 fix(components/status): Up & down jump due to content being added to the DOM (#3972) 2017-06-27 18:43:53 +02:00
Eugen Rochko
0d316bcfd2 Turn report screen into a modal (#3965) 2017-06-27 18:07:21 +02:00
Sorin Davidoi
d6006ecb4b Responsive images in media gallery (#3963)
* feat(components/media_gallery): Responsive images

* fix(components/media_gallery): Link to image URL
2017-06-27 13:46:37 +02:00
PFM
f4d0f6954e Fix "undefined" in className (#3939) 2017-06-25 16:02:56 +02:00
unarist
fdd982a562 Clean column collapsible (#3931)
* Remove unused column_collapsable.js
* Remove old styles
* Extract `> div`  style to independent class
2017-06-24 23:18:11 +02:00
Daniel Hunsaker
0c8f23b69f Fix a typo and give CW'd statuses the right cursor (#3918) 2017-06-23 23:13:27 +02:00
Yamagishi Kazutoshi
e2027fbe42 Use Class and Property Decorators (#3730)
ref https://tc39.github.io/proposal-decorators/
2017-06-23 19:36:54 +02:00
Yamagishi Kazutoshi
539dbaa049 Remove unused variables (#3906) 2017-06-23 16:05:04 +02:00
unarist
66e14b3d3a Don't attach IntersectionObserver for wrapped statuses (#3883)
(This patch has been merged as bugfix and reverted, but still valuable as
improvement)

Previously, we've attached IntersectionObserver twice for boosted statuses:
wrapper Status and wrapped Status. but wrapped Status don't need to manage
intersection and visibility by itself, because it's a part of wrapper Status.
2017-06-21 06:47:36 +02:00
Eugen Rochko
65b46159ec Revert #3851 (#3878) 2017-06-21 01:37:15 +02:00
Eugen Rochko
cbc0fea992 Revert "Don't attach IntersectionObserver for wrapped statuses" (#3877)
* Revert "Bump version to 1.4.4"

This reverts commit bd6bee29de.

* Revert "Fix conversations (fixes #3869) (#3870)"

This reverts commit ee7952c349.

* Revert "Fix streaming server. Redis connection subscribe for each channel. (#3828)"

This reverts commit 8f202bc639.

* Revert "Filter direct statuses in Status.as_home_timeline (#3842)"

This reverts commit 77dcf442e7.

* Revert "Fix RemoteFollow behavior (#3868)"

This reverts commit 1d2eba7a84.

* Revert "Update fabricator for MediaAttachment to attach a file according to type (#3862)"

This reverts commit baa248a801.

* Revert "Upgrade React Router (#3677)"

This reverts commit 9bc32eb267.

* Revert "Do not call setState from unmounted component (#3853)"

This reverts commit 59849b392d.

* Revert "Replace TextIconButton for SensitiveButton to IconButton (#3759)"

This reverts commit 47dceaded6.

* Revert "Fix RTL detection on Ruby side (#3867)"

This reverts commit 55376105f5.

* Revert "i18n: Fixed typo in Polish translation (#3864)"

This reverts commit 3c355ed26b.

* Revert "Don't attach IntersectionObserver for wrapped statuses (#3863)"

This reverts commit 79c04b0a2c.
2017-06-21 01:33:14 +02:00
Sorin Davidoi
9bc32eb267 Upgrade React Router (#3677)
* chore(yarn): Remove react-router

* chore(yarn): Remove react-router-scroll

* chore(yarn): Remove history

* chore(yarn): Add react-router-dom

* chore: Remove usages of react-router-scroll

* refactor: Upgrade to react-router-web

* refactor: Use fork of react-router-scroll

This reverts commit 2ddea9a6c8d39fc64b7d0b587f3fbda7a45a7fa2.

* fix: Issues mentions in the PR feedback
2017-06-20 20:40:03 +02:00
alpaca-tc
59849b392d Do not call setState from unmounted component (#3853)
Stop an executing task if the component already unmounted.
2017-06-20 20:37:09 +02:00