Commit graph

337 commits

Author SHA1 Message Date
Renaud Chaput
d9b93bd15e
Enforce React Rules of Hooks with eslint () 2023-05-09 03:09:11 +02:00
Eugen Rochko
8099ba04be
Change hashtags and mentions in bios to open in-app in web UI () 2023-04-25 06:33:21 +02:00
Nick Schonning
2daa5a1549
Enable formatjs/prefer-pound-in-plural () 2023-04-24 08:07:19 +02:00
Eugen Rochko
0461f83320
Add new onboarding flow to web UI () 2023-04-23 22:24:53 +02:00
Nick Schonning
ec0c104bf2
Ensure tabIndex is number instead of string () 2023-04-04 16:33:44 +02:00
Eugen Rochko
2b11376411
Change search pop-out in web UI () 2023-04-01 09:59:10 +02:00
Yamagishi Kazutoshi
d1b057a0ac
Remove legacy decorators syntax () 2023-03-24 03:17:53 +01:00
Claire
7207a98d39
Add lang tag to native language names in language picker () 2023-02-21 09:23:39 +01:00
Claire
d3b4d4d4f3
Change compose form checkbox to native input with appearance: none () 2023-02-20 11:32:27 +01:00
Renaud Chaput
44a7d87cb1
Rename JSX files with proper .jsx extension () 2023-02-20 03:20:59 +01:00
Nick Schonning
eddfb33dfe
Enable ESLint import recommended rules () 2023-02-13 15:12:31 +01:00
Nick Schonning
db2c58d47a
Enable ESLint no-useless-escape () 2023-02-13 15:12:14 +01:00
Claire
bae17ebe5e
Fix attached media uploads not being cleared when replying to a post () 2023-02-10 22:03:35 +01:00
Christian Schmidt
67744ee779
Spell check input fields () 2023-02-04 16:34:21 +01:00
Nick Schonning
c49213f0ea
Upgrade ESlint to v8 () 2023-01-30 01:45:35 +01:00
Christian Schmidt
2a4f2216d6
Add lang attribute to image description textarea and poll option field () 2023-01-29 19:00:19 +01:00
Claire
83a8efa9ca
Add lang attribute to compose textarea and CW field ()
Fixes 
2023-01-24 18:49:21 +01:00
Connor Shea
30e895299c
Add listing of followed hashtags ()
* Add followed_tags route.

This at least gets us to the point where the page can actually be
rendered, although it doesn't display any hashtags (yet?).

Attempting to implement .

* Fix minor issues.

* I've got the followed tags data partially working

But the Hashtag component errors for some reason. Something about the
value of the history attribute being invalid.

* Fix a mistake in the code

* Minor change.

* Get the followed hashtags list fully working.

Still need to add the Follow/Unfollow buttons, though.

* Resolve JS linter issues.

* Add pagination logic to followed tags list view.

However, it currently loads further pages immediately on page load, so
that's not ideal. Need to figure that one out.

* Appease the linter.

* Apply suggestions from code review

Co-authored-by: Claire <claire.github-309c@sitedethib.com>

* Fixes and resolve some other feedback.

* Use set/update instead of setIn/updateIn.

Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2023-01-18 16:44:33 +01:00
Claire
4b92e59f4f
Add support for editing media description and focus point of already-posted statuses ()
* Add backend support for editing media attachments of existing posts

* Allow editing media attachments of already-posted toots

* Add tests
2023-01-18 16:33:55 +01:00
Claire
f4a6365f55
Remove hardcoded width from dropdown overlays ()
* Remove hardcoded width from dropdown overlays

* Fix emoji picker position
2023-01-12 16:43:02 +01:00
Peter Simonsson
fd33bcb3b2
Fix dropdown menu positions when scrolling ()
* Update react-overlays to latest version

* Fix breaking changes in dropdown menus

* Use react-overlays built-in arrow positioning feature
* Re-implemented `.dropdown-menu__arrow` to have a defined width and height to improve positioning
* Moved wrapping div (`.dropdown-menu` from `DropdownMenu` to `Dropdown`)
* Wrap button in a span to solve issue with ref
* Temporarily remove animations

* Fix breaking changes in emoji picker

* Wrap EmojiPickerMenu in a div where react-overlays’ ref is added

* Fix breaking changes in language dropdown

* Fix breaking changes in privacy dropdown

* Fix breaking changes in search form

* Add animations back using `@keyframes`

* Fix arrow color in light theme

* Fix linting issue

* Remove unused `mounted` state

* Remove `placement` state from components and redux

And remove the placement state from props of the menu components.

* Remove abolution position to fix flip issue

* Remove z-index to fix modals and overlay positions

* Fix lint issues

* Set placement in privacy and language components

Copy the placement state into the `PrivacyDropdown` and `LanguageDropdown` components, to apply correct styling to the buttons depending on which placement the Overlay has.

* Move `placement` state to correct component
2023-01-11 21:58:46 +01:00
Holden Foreman
83888739fd
Add aria-hidden to content warning field when dimmed so that it is not confusing to screen reader users () 2023-01-05 13:39:58 +01:00
Nick Schonning
06b68490d1
Enable eslint:recommended ruleset ()
* Enable ESLint recommended ruleset

* Disable failing ESLint recommended rules

* Remove rules shadowed by eslint:recommended
2022-12-19 00:51:37 +09:00
Rens Groothuijsen
726c7dea31
Display search popout at fixed screen position ()
* Display search popout at fixed screen position

* Attach search popout to search box
2022-12-15 17:38:50 +01:00
Arnout Engelen
9f63c428e1
Don't autofocus the compose form ()
When opening a page such as /web/timelines/home in a desktop browser, the
cursor was automatically placed in the textarea of the compose form.

When using the keyboard for navigation (using a browser plugin like vimium or
vim vixen, or just to hit 'space' to scroll down a page), you have remember to
leave the field before using that.

Since you only visit the page to write a new post some of the time, this PR
attempts to have nothing focused initially (and require the user to click or
e.g. use 'tab' to focus the textarea).

Tested:
* /web/timeslines/home no longer autofocuses the compose box
* pressing the 'n' hotkey still focuses the compose box
* clicking 'reply' for a post still focuses the compose box
* replying to a CW'ed post still focuses the compose box
* introducing the CW field still focuses the CW field
* introducing the CW field for a reply still focuses the CW field
* removing the CW field still focuses the compose box
* /web/statuses/new still autofocuses the compose box

fixes 
2022-12-15 17:37:05 +01:00
Pleclown
3a59ffde8d
Adding 12 hours option for polls ()
* Adding 12 hours option for polls

Adding 12 hours option for polls

* Adding 12 hours option for polls

Missing > on a line
2022-12-15 16:20:34 +01:00
Alex Stine
903e5a3f45
Fix hidden label causing accessibility issue for search inputs ()
* Try unhiding search label.

* Use aria-label. Remove label as empty labels are useless.

* Remove addition of package-lock.json.
2022-12-15 16:20:21 +01:00
trwnh
07229089a6
Change in-app links to keep you in-app ()
* Change in-app links to keep you in-app

* refactor Permalink into Link

* rewrite link hrefs in status content

* please linter

* please linter again
2022-11-13 21:10:20 +01:00
Claire
31005aad12
Add the ability to edit media attachment metadata for any unattached media () 2022-11-11 21:22:17 +01:00
Claire
5e796dc6f8
Remove “No description added” media warning in edit mode ()
Editing media metadata is not currently possible in edit mode, the button would
open the modal but saving the changes would error out.
2022-11-11 09:20:24 +01:00
Claire
608343c135
Fix opening the language picker scrolling the single-column view to the top ()
Fixes 
2022-11-08 03:52:52 +01:00
Sunny Ripert
c95d9aab56
Fix JavaScript console error on upload editing status () 2022-11-05 13:43:47 +01:00
Claire
9616f5bb22
Fix compose form submission reloading web interface ()
* Fix compose form submission reloading web interface

Fix regression introduced by 

* Fix various compose form buttons being handled like submit buttons

* Fix coding style issue

* Fix missing onClick prop check
2022-11-05 13:43:37 +01:00
Sunny Ripert
0165449e3a
A11y: Explicit <form> element around compose area () 2022-11-04 17:08:08 +01:00
Eugen Rochko
30ef110224
Fix upload progress not communicating processing phase in web UI () 2022-10-29 20:05:53 +02:00
Eugen Rochko
55af04b253
Fix logged out search and changed logged-in search placeholder () 2022-10-29 13:32:49 +02:00
Eugen Rochko
0ca29eaa3f
Change layout of posts in web UI () 2022-10-25 19:02:21 +02:00
Eugen Rochko
5452af2188
Fix redirecting to /publish when compose form is visible in web UI () 2022-10-23 23:37:58 +02:00
Eugen Rochko
839f893168
Change public accounts pages to mount the web UI ()
* Change public accounts pages to mount the web UI

* Fix handling of remote usernames in routes

- When logged in, serve web app
- When logged out, redirect to permalink
- Fix `app-body` class not being set sometimes due to name conflict

* Fix missing `multiColumn` prop

* Fix failing test

* Use `discoverable` attribute to control indexing directives

* Fix `<ColumnLoading />` not using `multiColumn`

* Add `noindex` to accounts in REST API

* Change noindex directive to not be rendered by default before a route is mounted

* Add loading indicator for detailed status in web UI

* Fix missing indicator appearing while account is loading in web UI
2022-10-20 14:35:29 +02:00
Claire
2b00ccdbd5
Fix button to dismiss suggestions not showing up in search results ()
Fix a typo. The scope of this fix is pretty minor as that view only ever
shows up in one corner case, now.
2022-10-09 12:28:59 +02:00
Eugen Rochko
e2b561e3a5
Fix logged-out web UI on smaller screens () 2022-10-04 20:13:23 +02:00
Claire
50487db122
Add ability to filter individual posts ()
* Add database table for status-specific filters

* Add REST endpoints, entities and attributes

* Show status filters in /filters interface

* Perform server-side filtering for individual posts filters

* Fix filtering on context mismatch

* Refactor `toServerSideType` by moving it to its own module

* Move loupe and delete icons to their own module

* Add ability to filter individual posts from WebUI

* Replace keyword list by warnings (expired, context mismatch)

* Refactor server-side filtering code

* Add tests
2022-08-25 04:27:47 +02:00
Eugen Rochko
628c177ebe
Change label of publish button to be "Publish" again () 2022-06-01 05:03:12 +02:00
Eugen Rochko
0cdb077570
Add language dropdown to compose in web UI () 2022-05-16 11:18:35 +02:00
Claire
e2d1d3b428
Change “Only people I mention” to “Mentioned people only” () 2022-05-03 12:30:40 +02:00
Eugen Rochko
be0bc9acbf
Change "Direct" status visibility to "Only people I mention" in web UI ()
- Change name of conversations column in web UI
- Change hotkey for opening conversations column from `g d` to `g c` in web UI
- Remove shortcuts for creating direct-visibility statuses from web UI
2022-04-29 00:24:31 +02:00
Eugen Rochko
4e9855e09a
Add hint about missing media attachment description in web UI () 2022-03-22 09:48:12 +01:00
Claire
2cd31b3177
Fix reply button on media modal not giving focus to compose form ()
* Avoid compose form and modal management fighting for focus

* Fix reply button on media modal footer not giving focus to compose form
2022-02-25 00:51:01 +01:00
Claire
aa86cf9557
Fix opening the emoji picker scrolling the single-column view to the top ()
Fixes 
2022-02-16 21:44:47 +01:00
Claire
38845592c4
Fix controls for unchangeable properties on status edit not being disabled ()
Fixes 
2022-02-12 19:00:33 +01:00
Eugen Rochko
63002cde03
Add editing for published statuses ()
* Add editing for published statuses

* Fix change of multiple-choice boolean in poll not resetting votes

* Remove the ability to update existing media attachments for now
2022-02-10 00:15:30 +01:00
Claire
3a103cd317
Fix text being incorrectly pre-selected in composer textarea on /share ()
Fixes 
2022-01-20 20:56:21 +01:00
Eugen Rochko
07341e7aa6
Add graphs and retention metrics to admin dashboard () 2021-10-14 20:44:59 +02:00
Mashiro
2e549fa2d5
Fix drawer tab menu routes in advanced web ui () 2021-09-30 05:19:08 +02:00
Eugen Rochko
52e5c07948
Change routing paths to use usernames in web UI () 2021-09-26 05:46:13 +02:00
Takeshi Umeda
b2875b1864
Fix logout link not working in safari () 2021-08-06 12:14:13 +02:00
Claire
a8a7066e97
Add confirmation modal when closing media edit modal with unsaved changes ()
* Add confirmation modal when closing media edit modal with unsaved changes

* Move focal point media state to redux so it does not get erased by confirmation dialog

* Change upload modal behavior to keep it open while saving changes

Instead of closing it immediately and losing changes if they fail to save…

* Make it work with react-intl 2.9
2021-07-25 01:14:43 +02:00
Eugen Rochko
abd7b4636a
Add assets from Twemoji 13.1.0 ()
* Add assets from Twemoji 13.1.0

* Update emoji-mart
2021-06-01 14:35:49 +02:00
Eugen Rochko
0a3fa034fc
Fix "You might be interested in" flashing while searching in web UI () 2021-05-06 02:11:43 +02:00
Takeshi Umeda
baed52c2a7
Fix not to show follow button in global suggestion ()
* Fix not to show follow button in global suggestion

* Fix style
2021-04-16 10:06:42 +02:00
Eugen Rochko
f7117646af
Add cold-start follow recommendations () 2021-04-12 12:37:14 +02:00
Claire
034f37b85a
Fix compose form behavior in mobile view ()
* Fix ComposeForm being mounted twice in mobile view

Fixes 

* Fix compose form focus and pre-selection behavior in mobile view

* Split _updateFocusAndSelection out of componentDidUpdate
2021-03-24 10:19:07 +01:00
Claire
65db262550
Update twitter-text from 1.14 to 3.1.0 and fix toot character counting ()
* Update twitter-text from 1.14 to 3.1.0

* Disable emoji parsing

* Properly depend on twitter-text for url detection

* Fix some URLs being wrongly detected client-side

* Add test for server-side validation of non-autolinkable URLs

* Fix server-side status length counting
2021-03-02 12:02:56 +01:00
Takeshi Umeda
7927959d8f
fix typo () 2021-02-11 06:22:11 +01:00
Claire
07b46cb332
Add dropdown for boost privacy in boost confirmation modal ()
* Various dropdown code quality fixes

* Prepare support for privacy selection in boost modal

* Add dropdown for boost privacy in boost confirmation modal
2021-02-11 00:53:12 +01:00
ThibG
5fcac81302
Add “translate” class to other user strings ()
* Add “translate” class to other user strings

Follow-up to .

Allow Google Translate to work on more user content:
- poll options
- reply indicator (contents of the status being replied to)
- directory account cards
- account note in follow requests list

* Fix incorrect styling of account bio

Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2021-01-22 10:09:23 +01:00
Eugen Rochko
1f564051b6
Change RTL detection to rely on unicode-bidi paragraph by paragraph () 2020-12-15 12:56:43 +01:00
Mélanie Chauvel
68775b6039
Fix character count not ignoring hidden CW field () 2020-11-30 12:09:34 +01:00
dependabot[bot]
e16b0fb15a
Bump detect-passive-events from 1.0.5 to 2.0.1 ()
* Bump detect-passive-events from 1.0.5 to 2.0.1

Bumps [detect-passive-events](https://github.com/rafgraph/detect-passive-events) from 1.0.5 to 2.0.1.
- [Release notes](https://github.com/rafgraph/detect-passive-events/releases)
- [Commits](https://github.com/rafgraph/detect-passive-events/compare/v1.0.5...v2.0.1)

Signed-off-by: dependabot[bot] <support@github.com>

* Migrate to detect-passive-events v2

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh>
2020-11-05 02:21:05 +09:00
Mélanie Chauvel
c5704e75ae
Make “Mark media as sensitive” properly translatable () 2020-10-27 03:05:50 +01:00
ThibG
4c45b43cb8
Change how CDN_HOST is passed down to make assets build reproducible ()
* Change how CDN_HOST is passed down to make assets build reproducible

* Change webpacker/webpack configuration to dynamically load publicPath based on meta header

* Fix embedded layout missing the cdn-host meta header
2020-10-13 01:19:35 +02:00
ThibG
c7cfd4e67a
Fix scrolling issues when closing some dropdown menus () 2020-08-21 14:14:28 +02:00
ThibG
bd3420b139
Fix crash when failing to load emoji picker ()
Fixes 
2020-08-08 17:57:56 +02:00
abcang
4a4d08f3a0
Fix eslint error () 2020-08-07 10:40:33 +02:00
ThibG
a637344e37
Fallback to previous, more approximative hashtag RE on older browsers ()
Fixes 
2020-08-05 22:39:14 +02:00
kedama
cd94854e7d
Fix the hashtag judgment of the compose form to be the same as the server side () 2020-08-02 11:19:43 +02:00
Mélanie Chauvel
e49bd93211
Improve wording of the “Add media” button tooltip ()
- Remove (incomplete) list of supported formats
- List types of media (image, video, audio)
- Tell that several images could be uploaded using plural
2020-06-26 00:14:29 +02:00
Takeshi Umeda
434a6d0b15
Fix modifier key to keep the EmojiPicker on macOS () 2020-06-20 13:30:40 +02:00
Brian C. Lindner
64154c5161
Allow Ctrl-click to keep EmojiPicker window open () 2020-05-31 20:34:34 +02:00
ThibG
af6d356279
Fix first poll option not being focused when adding a poll ()
Fixes 
2020-05-12 15:29:44 +02:00
ThibG
77ec0875ea
Fix page incorrectly scrolling when bringing up dropdown menus ()
Fixes 

For some reason (I suspect this may be related to focusing the item before it
got drown by the browser), Firefox scrolls to top when bringing up dropdown
menus with pre-selected items.

This commit uses the “preventScroll” option as, due to the placement behavior,
the menu should be visible anyway and not trigger scrolling.
2020-04-28 13:19:39 +02:00
ThibG
80182eda62
Fix and refactor keyboard navigation in dropdown menus ()
Fixes 

- Fixes caught keyboard events being needlessly propagated
- Let up/down arrows wrap around like the tab key does
- Refactor common code
2020-04-21 15:13:26 +02:00
Sasha Sorokin
37b3985bfa
Improve polls: option lengths & redesign ()
This commit redesign the polls and increases characters limit for the
options from 25 to 50 characters, giving pollsters more freedom.

Summarizing, the redesign is making the polls more adaptive for upcoming
changes to the options characters limit: the bar, or a "chart", is now
displayed separately from the option itself; vote check mark is moved
next to the option text, making the percentages take less space. Option
lengths are taken into account and text is wrapped to multiple lines
if necessary to avoid overflow.
2020-04-02 17:10:55 +02:00
mayaeh
44292a6952
Add link to bookmarks in web UI dropdown () 2020-03-21 03:14:28 +01:00
Bèr Kessels
fd76955f39
Code style improvements in JavaScript ()
* JS-linter: fix trailing comma's

* Configure eslinter to ignore this onchange error.
2020-03-08 16:02:36 +01:00
Mélanie Chauvel (ariasuni)
4063f9f278
Change description of privacy levels to be more intuitive in web UI ()
* Improve description of privacy levels in compose interface

* Change strings in defaultMessage and source as well as english

Co-authored-by: Thibaut Girka <thib@sitedethib.com>
2020-03-08 15:59:55 +01:00
Eugen Rochko
f52c988e12
Add announcements ()
* Add announcements

Fix 

* Add reactions to announcements

* Add admin UI for announcements

* Add unit tests

* Fix issues

- Add `with_dismissed` param to announcements API
- Fix end date not being formatted when time range is given
- Fix announcement delete causing reactions to send streaming updates
- Fix announcements container growing too wide and mascot too small
- Fix `all_day` being settable when no time range is given
- Change text "Update" to "Announcement"

* Fix scheduler unpublishing announcements before they are due

* Fix filter params not being passed to announcements filter
2020-01-23 22:00:13 +01:00
Acid Chicken (硫酸鶏)
09a72add0e Fix tooltip messages of multiple poll switcher are reversed () 2019-12-16 23:55:02 +01:00
Eugen Rochko
77e7b33dea
Revert "Fix an eslint warning ()" ()
This reverts commit 054ef83fc5.
2019-12-10 19:39:02 +01:00
ThibG
c05ed8a625 Fix poll options not being selectable via keyboard ()
* Fix poll options not being selectable via keyboard

Fixes 

* Improve styling of poll option checkboxes/radio buttons

* Use more appropriate ARIA roles for poll options

* Allow switching between single and multiple choice from keyboard

* Coding style

* Avoid using .bind()
2019-12-03 19:53:16 +01:00
Dimitri Merejkowsky
054ef83fc5 Fix an eslint warning () 2019-11-22 15:57:22 +01:00
ThibG
66684c489c Fix WebUI allowing to upload more items than the limit ()
Until this patch, drag'n'drop and copy-paste allowed to start uploading as
long as the number of *finished* uploads was below the limit.
2019-11-07 09:07:03 +02:00
ThibG
7cdb8c10e9 Minor improvements to poll composing UI ()
- Disable the “add option” button instead of hiding it
- Allow poll option inputs to scale to full width
2019-11-07 09:06:06 +02:00
Jeong Arm
66fda37fd0 Scroll into search bar when focus () 2019-10-01 19:19:10 +02:00
ThibG
fd3d45d38f Add confirmation modal when logging out from the web app ()
* [WiP] Add a confirmation modal before logging out from the web interface

* Add confirmation to logout link in getting started footer

* Please CodeClimate
2019-08-26 18:24:10 +02:00
Eugen Rochko
28636f43e4
Add OCR tool to media editing modal () 2019-08-15 15:13:26 +02:00
Eugen Rochko
23f7afa562
Add media editing modal ()
Move media description input to a modal and unite that modal with
the focal point modal. Add a hint about choosing focal points, as
well as a preview of a 16:9 thumbnail. Enable the user to watch
the video next to the media description input.

Fix 
Fix 
2019-08-14 04:07:32 +02:00
ThibG
27a0d02d0d Improve keyboard navigation in privacy dropdown ()
* Trap tab in privacy dropdown

* Give focus back to last focused element when privacy dropdown menu closes

* Actually give back focus to the element that had it before clicking the dropdown
2019-08-06 11:59:58 +02:00
ThibG
792d0dd470 Fix privacy dropdown active state when dropdown is placed on top of it () 2019-08-06 11:59:14 +02:00
ThibG
c8fd823327 Change icon button styles to make hover/focus states more obvious ()
* Change icon buttons styles to make hover/focused states more obvious

* Fix CW button size inconsistency

* Fix icon button background color consistency
2019-08-03 19:10:50 +02:00