Commit Graph

277 Commits

Author SHA1 Message Date
dependabot-preview[bot] d2af9a9a6d Bump react-select from 2.2.0 to 2.4.4 (#10895)
Bumps [react-select](https://github.com/JedWatson/react-select) from 2.2.0 to 2.4.4.
- [Release notes](https://github.com/JedWatson/react-select/releases)
- [Changelog](https://github.com/JedWatson/react-select/blob/master/.sweet-changelogs.js)
- [Commits](https://github.com/JedWatson/react-select/compare/v2.2.0...v2.4.4)
2019-05-30 20:38:27 +09:00
dependabot-preview[bot] c9e5ce4eba Bump object.values from 1.0.4 to 1.1.0 (#10894)
Bumps [object.values](https://github.com/es-shims/Object.values) from 1.0.4 to 1.1.0.
- [Release notes](https://github.com/es-shims/Object.values/releases)
- [Changelog](https://github.com/es-shims/Object.values/blob/master/CHANGELOG.md)
- [Commits](https://github.com/es-shims/Object.values/compare/v1.0.4...v1.1.0)
2019-05-30 20:37:09 +09:00
dependabot-preview[bot] 32fc0777b1 Bump js-yaml from 3.12.0 to 3.13.1 (#10881)
Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 3.12.0 to 3.13.1.
- [Release notes](https://github.com/nodeca/js-yaml/releases)
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodeca/js-yaml/compare/3.12.0...3.13.1)
2019-05-29 23:17:01 +09:00
dependabot-preview[bot] 1f3bc026f4 Bump express from 4.16.4 to 4.17.1 (#10889)
Bumps [express](https://github.com/expressjs/express) from 4.16.4 to 4.17.1.
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/master/History.md)
- [Commits](https://github.com/expressjs/express/compare/4.16.4...4.17.1)
2019-05-29 22:53:20 +09:00
dependabot-preview[bot] c2153c1a76 Bump intl-relativeformat from 2.1.0 to 2.2.0 (#10887)
Bumps [intl-relativeformat](https://github.com/yahoo/intl-relativeformat) from 2.1.0 to 2.2.0.
- [Release notes](https://github.com/yahoo/intl-relativeformat/releases)
- [Commits](https://github.com/yahoo/intl-relativeformat/commits)
2019-05-29 22:30:52 +09:00
dependabot-preview[bot] a2c0cf73b6 Bump babel-plugin-react-intl from 3.0.1 to 3.1.0 (#10877)
Bumps [babel-plugin-react-intl](https://github.com/formatjs/babel-plugin-react-intl) from 3.0.1 to 3.1.0.
- [Release notes](https://github.com/formatjs/babel-plugin-react-intl/releases)
- [Commits](https://github.com/formatjs/babel-plugin-react-intl/commits)
2019-05-29 19:03:31 +09:00
dependabot-preview[bot] 2c6948bb3f Bump react-redux from 6.0.0 to 6.0.1 (#10879)
Bumps [react-redux](https://github.com/reduxjs/react-redux) from 6.0.0 to 6.0.1.
- [Release notes](https://github.com/reduxjs/react-redux/releases)
- [Changelog](https://github.com/reduxjs/react-redux/blob/master/CHANGELOG.md)
- [Commits](https://github.com/reduxjs/react-redux/compare/v6.0.0...v6.0.1)
2019-05-29 18:20:36 +09:00
dependabot-preview[bot] d0a87e4711 Bump @babel/plugin-transform-runtime from 7.3.4 to 7.4.4 (#10878)
Bumps [@babel/plugin-transform-runtime](https://github.com/babel/babel) from 7.3.4 to 7.4.4.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.3.4...v7.4.4)
2019-05-29 18:19:16 +09:00
dependabot-preview[bot] 60d768d346 Bump rimraf from 2.6.2 to 2.6.3 (#10880)
Bumps [rimraf](https://github.com/isaacs/rimraf) from 2.6.2 to 2.6.3.
- [Release notes](https://github.com/isaacs/rimraf/releases)
- [Commits](https://github.com/isaacs/rimraf/compare/v2.6.2...v2.6.3)
2019-05-29 18:12:53 +09:00
abcang ca6c93a2f5 Migrate from uws to cws (#10805) 2019-05-22 18:19:16 +02:00
Eugen Rochko fba96c808d
Add blurhash (#10630)
* Add blurhash

* Use fallback color for spoiler when blurhash missing

* Federate the blurhash and accept it as long as it's at most 5x5

* Display unknown media attachments as blurhash placeholders

* Improve style of embed actions and spoiler button

* Change blurhash resolution from 3x3 to 4x4

* Improve dependency definitions

* Fix code style issues
2019-04-27 03:24:09 +02:00
Eugen Rochko 8fb69f1366
Fix emoji-mart crashing web UI on search by reverting the upgrade to 2.10.0 (#10413)
Fix #10315

This reverts commit db06b25376.
2019-03-30 01:41:35 +01:00
Nolan Lawson db06b25376 fix: update to emoji-mart 2.10.0 (#10281)
* fix: update to emoji-mart 2.10.0

* remove useless change

* fix CSS style of emoji picker, improve a11y

* fix missing newline in scss

* fix the title and input fonts
2019-03-16 20:13:15 +01:00
Nolan Lawson 8da5b8e669 perf: remove zopfli to speed up webpack (#10288) 2019-03-16 04:02:30 +01:00
Yamagishi Kazutoshi 8347479f5d Bump webpacker from 3.5.5 to 4.0.2 (#10277)
Bumps [webpacker](https://github.com/rails/webpacker) from 3.5.5 to 4.0.2.
- [Release notes](https://github.com/rails/webpacker/releases)
- [Changelog](https://github.com/rails/webpacker/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rails/webpacker/compare/v3.5.5...v4.0.2)

Signed-off-by: dependabot[bot] <support@dependabot.com>
Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh>
2019-03-15 15:05:31 +01:00
Yamagishi Kazutoshi 317c43b75b Upgrade yargs to v12.0 (#9862) 2019-03-15 03:53:38 +01:00
Eugen Rochko bc642ac24b
Redesign public hashtag page to use a masonry layout (#9822) 2019-01-16 19:47:46 +01:00
ThibG 5104b61b6b Downgrade react-redux-loading-bar to 4.0.8 to fix media modal (#9771) 2019-01-10 15:13:00 +01:00
Yamagishi Kazutoshi dc84899fff Upgrade ESLint to v5.x (#9694) 2019-01-02 07:28:53 +01:00
Yamagishi Kazutoshi 8f5fdab5bf Update dependencies for Node.js (2018-12-31) (#9669)
* Update react-* to v16.7.0

* Upgrade react-hotkeys to v1.1.4

* Update react-intl to v2.7.2

* Update react-select to v2.2.0

* Update react-swipeable-views to v0.13.0

* Upgrade react-textarea-autosize to v7.1.0

* Upgrade redux to v4.0.1

* Upgrade reselect to v4.0.0

* Update raf to v3.4.1

* Update enzyme to v3.8.0

* Update rails-ujs to v5.2.2

* Update axios to v0.18.0

* Update http-link-header to v1.0.2

* Update rellax to v1.7.1

* Update intersection-observer to v0.5.1

* Update stringz to v1.0.0

* Upgrade babel-eslint to v10.0.1

* Update @babel/* to v7.2.x

* Update babel-plugin-react-intl to v3.0.1

* Update babel-plugin-transform-react-remove-prop-types to v0.4.21

* Upgrade dotenv to v6.2.0

* Update express to v4.16.4

* Update webpack to v4.28.3

* Upgrade autoprefixer to v9.4.3

* Update babel-loader to v8.0.4

* Upgrade css-loader to v2.1.0

* Upgrade file-loader to v3.0.1

* Update marky to v1.2.1

* Update mini-css-extract-plugin to v0.5.0

* Update offline-plugin to v5.0.6

* Update style-loader to v0.23.1

* Update eslint-plugin-jsx-a11y to v6.1.2

* yarn upgrade

* fix

* Replace webpack-manifest-plugin to webpack-assets-manifest

* Replace node-zopfli to @gfz/zopfli

* Remove monkey-patch for http-link-header
2018-12-31 18:11:48 +01:00
Eugen Rochko 3948b6fa52
Remove npm-run-all dependency (#9401)
Fix #9359
2018-11-30 19:16:32 +01:00
James Kiesel 4c03e05a4e Allow joining several hashtags in a single column (#8904)
* Nascent tag menu on frontend

* Hook up frontend to search

* Tag intersection backend first pass

* Update yarnlock

* WIP

* Fix for tags not searching correctly

* Make radio buttons function

* Simplify radio buttons with modeOption

* Better naming

* Rearrange options

* Add all/any/none functionality on backend

* Small PR cleanup

* Move to service from scope

* Small cleanup, add proper service tests

* Don't use send with user input :D

* Set appropriate column header

* Handle auto updating timeline

* Fix up toggle function

* Use tag value correctly

* A bit more correct to use 'self' rather than 'all' in status scope

* Fix some style issues

* Fix more code style issues

* Style select dropdown more better

* Only use to_id'ed value to ensure no SQL injection

* Revamp frontend to allow for multiple selects

* Update backend / col header to account for more flexible tagging

* Update brakeman ignore

* Codeclimate suggestions

* Fix presenter tag_url

* Implement initial PR feedback

* Handle additional tag streaming

* CodeClimate tweak
2018-11-05 18:53:25 +01:00
Marcin Mikołajczak 2fb692ea45 i18n: Update Polish translation (#8901)
Signed-off-by: Marcin Mikołajczak <me@m4sk.in>
2018-10-06 20:42:36 +09:00
Eugen Rochko 3d7f68c273
Revert Font Awesome 5 upgrade (#8810)
* Revert "Fix some icon names changed by the Font Awesome 5. (#8796)"

This reverts commit 3f9ec3de82.

* Revert "Migrate to font-awesome 5.0. (#8799)"

This reverts commit 8bae14591b.

* Revert "Fix some icons names, unavailable in fontawesome5 (free license). (#8792)"

This reverts commit b9c727a945.

* Revert "Update the icon name changed by the Font Awesome 5. (#8776)"

This reverts commit 17af4d27da.

* Revert "Add bot icon to bot avatars and migrate to newer version of Font Awesome (#8484)"

This reverts commit 4b794e134d.
2018-09-28 02:11:14 +02:00
Maciek Baron 4b794e134d Add bot icon to bot avatars and migrate to newer version of Font Awesome (#8484)
* Migrate to newer version of Font Awesome

* Add bot icon to bot avatars
2018-09-25 05:08:55 +02:00
Yamagishi Kazutoshi 0ddbccf7e6 Upgrade Babel to version 7.0.0 (#5925) 2018-09-14 17:59:48 +02:00
Eugen Rochko bb71538bb5
Redesign public profiles and toots (#8068) 2018-07-28 19:25:33 +02:00
abcang 3c3cf7e208 Update supported Node.js version (#8041) 2018-07-17 15:29:33 +02:00
Yamagishi Kazutoshi af161e849d Downgrade react-swipeable-views to v0.12.13 from v0.12.14 (#8022) 2018-07-15 01:01:01 +02:00
Yamagishi Kazutoshi 0eacf2b419 Upgrade Node.js to v8.x on Docker image (#8019) 2018-07-14 15:12:27 +02:00
Yamagishi Kazutoshi e9b322d0a6 Upgrade webpack to version v4.x (#6655) 2018-07-14 03:56:41 +02:00
Petko Bordjukov 37d428dfaf Update uws dependency to 10.148.0 (#7448)
This release fixes issues with open events, adds Node 10 support
and drops Node 4, 5, 6 and 7.

Changes: 6152fb6787...689c15c59e
2018-07-14 01:46:27 +02:00
Eugen Rochko a043f8d277
Ensure emoji-mart dependency is updated (#7771)
Regression from 85470ec since version string was not updated
2018-06-09 21:10:53 +02:00
Renato "Lond" Cerqueira 85470ec872 Fix issues with updated emoji mart (#7761)
* Changes behavior from search light to keep custom search
The new version of emoji-mart needs the search function to constantly
receive the custom emoji array. This changes the behavior back to the
previous one in the search light method to keep the emoji autocomplete
as before

* Change test order
The order was breaking the tests

* Fix codeclimate issues

* Update to emoji mart to version without issue in picker

Fixes #7760
2018-06-08 13:28:04 +02:00
Renato "Lond" Cerqueira 0c3ce41031 Update to emojimart 2.6.1 (#7746)
* Update to emojimart 2.6.1
WIP using local updated version. Sheet comes from emoji-data@4.0.4,
file sheet_twitter_32_indexed_256.png.

* Update to 2.6.1 and uncompress data if needed

* Remove changes that were not needed

* Fix yarn lock file

* Match emojiToShowFilter behavior to new version of emoji-mart

* Fix codeclimate issue

* Match custom emoji behavior to new version of emoji-mart

* Replace emoji without shortcode in tests

* Fix code climate issues
2018-06-07 19:40:23 +02:00
Yamagishi Kazutoshi bfa12239e8 Update ESLint for Code Climate (#7696)
* Update babel-eslint to version 8.2.3

* Update eslint to version 4.19.1

* Update eslint-plugin-promise to version 3.8.0

* Update eslint-plugin-react to version 7.8.2

* Upgrade eslint-plugin-jsx-a11y to version 6.0.3

* yarn test:lint --fix
2018-06-01 14:03:19 +02:00
Yamagishi Kazutoshi 13b60e6a14 Use URL polyfill (#7664) 2018-05-29 13:33:20 +02:00
Eugen Rochko 9bd23dc4e5
Track trending tags (#7638)
* Track trending tags

- Half-life of 1 day
- Historical usage in daily buckets (last 7 days stored)
- GET /api/v1/trends

Fix #271

* Add trends to web UI

* Don't render compose form on search route, adjust search results header

* Disqualify tag from trends if it's in disallowed hashtags setting

* Count distinct accounts using tag, ignore silenced accounts
2018-05-27 21:45:30 +02:00
Yamagishi Kazutoshi 6832110af4 Correct rotate of image using EXIF (#7422) 2018-05-09 08:41:07 +02:00
Kaito Sinclaire 156b916caf Direct messages column (#4514)
* Added a timeline for Direct statuses
* Lists all Direct statuses you've sent and received
* Displayed in Getting Started
* Streaming server support for direct TL

* Changes to match other timelines in 2.0
2018-04-18 13:09:06 +02:00
Emelia Smith 7a81082704 Revert "Add double-tap zoom functionary to `ZoomableImage` (#6944)" (#7035)
Unfortunately the new hammer.js functionality wasn't correctly tested and didn't work across devices and browsers, as such, it's best to revert PR #6944 until we can revisit this functionality and make it work across all devices and browsers that are supported by Mastodon.

This reverts commit 5021c4e9ca.
2018-04-04 11:58:15 +02:00
unarist 2c51bc0ca5 Add missing rejection handling for Promises (#7008)
* Add eslint-plugin-promise to detect uncaught rejections

* Move alert generation for errors to actions/alert

* Add missing rejection handling for Promises

* Use catch() instead of onReject on then()

Then it will catches rejection from onFulfilled. This detection can be
disabled by `allowThen` option, though.
2018-04-02 14:51:02 +02:00
Yuto Tokunaga 5021c4e9ca Add double-tap zoom functionary to `ZoomableImage` (#6944)
add <div.zoomable-image__margin/> to keep margin of the image on zooming
move setting `scrollLeft` and `scrollTop` of container from callback of
`setState` to `componentDidUpdate`
add 'hammerjs' package for touch gesture detection
rewrite `ZoomableImage` using 'hammerjs'
2018-03-28 20:40:51 +02:00
Akihiko Odaki ca42f9b0eb Cache media (#6902) 2018-03-27 12:32:30 +02:00
Yamagishi Kazutoshi 83c982b458 Run tests with npm-run-all (#6688) 2018-03-08 04:43:57 +01:00
Yamagishi Kazutoshi 0a103c7749 Upgrade ESLint to version 4.x (#6276) 2018-01-17 16:57:15 +01:00
Yamagishi Kazutoshi ac17309faf Update dependencies for Node.js (2017-12-03) (#5876)
* Update babel-plugin-lodash to version 3.3.2

* Update enzyme to version 3.2.0

* Update enzyme-adapter-react-16 to version 1.1.0

* Update intersection-observer to version 0.5.0

* Update intl-messageformat to version 2.2.0

* Update node-sass to version 4.7.2

* Update postcss-loader to version 2.0.9

* Update React to version 16.2.0

* Update react-textarea-autosize to version 5.2.1

* Update stringz to version 0.3.0

* Update webpack to version 3.9.1

* Update webpack-bundle-analyzer to version 2.9.1

* Update webpack-dev-server to version 2.9.5

* Update webpack-merge to version 4.1.1

* Update fsevents to version 1.1.3

* yarn upgrade
2017-12-03 16:55:53 +01:00
Sorin Davidoi e20258a2e5 chore(yarn): Upgrade react-swipeable-views (smoother swiping) (#5830) 2017-11-27 20:22:47 +01:00
Yamagishi Kazutoshi 8a588145d5 Update extract-text-webpack-plugin to version 3.0.2 (#5584) 2017-11-05 13:07:59 +01:00
Yamagishi Kazutoshi 0338c16f9f Remove babel-plugin-react-transform (#5582) 2017-11-01 17:49:46 +01:00
Yamagishi Kazutoshi 8ae9bd0eea Upgrade compression-webpack-plugin to version 1.0.1 (#5581) 2017-11-01 14:42:19 +01:00
Yamagishi Kazutoshi 763a2f8511
Replace react-router-scroll to react-router-scroll-4 (#5568) 2017-11-01 06:58:38 +09:00
Yamagishi Kazutoshi 6705463ed0 Update dependencies for Node.js (2017-10-30) (#5565)
* Update autoprefixer to version 7.1.6

* Update babel-plugin-preval to version 1.6.1

* Update babel-plugin-transform-react-remove-prop-types to version 0.4.10

* Update babel-preset-env to version 1.6.1

* Update cross-env to version 5.1.1

* Update enzyme-adapter-react-16 to version 1.0.2

* Update eslint-plugin-import to version 2.8.0

* Update immutable to version 3.8.2

* Update express to 4.16.2

* Update intl-relativeformat to version 2.1.0

* Update postcss-loader to version 2.0.8

* Update react-immutable-pure-component to version 1.1.1

* Update react-motion to version 0.5.2

* Update react-notification to version 6.8.2

* Update react-overlays to version 0.8.3

* Update react-redux-loading-bar to version 2.9.3

* Update resolve-url-loader to version 2.2.0

* Update style-loader to version 0.19.0

* Update webpack to version 3.8.1

* Update webpack-dev-server to version 2.9.3

* yarn upgrade
2017-10-31 12:23:24 +01:00
Yamagishi Kazutoshi bf0ee1a25c Enable ESLint rules import/* (#5414)
* Enable ESLint rules import/*

* fix
2017-10-16 11:12:09 +02:00
Yamagishi Kazutoshi d5b767c374 Replace JavaScript Testing Framework from Mocha to Jest (#5412) 2017-10-16 09:33:08 +02:00
Eugen Rochko 9b3d8ee346 Fix #5281 - Fix tooltip/custom emoji/search interaction (#5310) 2017-10-11 01:33:29 +02:00
Eugen Rochko fd49d5603a Fix #5278 - Update emoji-mart so invalid emoji IDs don't crash it (#5290) 2017-10-09 20:52:40 +02:00
Eugen Rochko 488584bfc1 Track frequently used emojis in web UI (#5275)
* Track frequently used emojis in web UI

* Persist emoji usage, but debounce commits to the settings API

* Fix #5144 - Add tooltips to picker

* Display only 2 lines of frequently used emojis
2017-10-08 21:47:15 +02:00
Nolan Lawson 057db0ecd0 Update emoji-mart to v2.1.1 (#5256) 2017-10-07 12:17:02 +02:00
Eugen Rochko 7db0f8dcb2 Implement hotkeys for web UI (#5164)
* Fix #2102 - Implement hotkeys

Hotkeys on status list:

- r to reply
- m to mention author
- f to favourite
- b to boost
- enter to open status
- p to open author's profile
- up or k to move up in the list
- down or j to move down in the list
- 1-9 to focus a status in one of the columns
- n to focus the compose textarea
- alt+n to start a brand new toot
- backspace to navigate back

* Add navigational hotkeys

The key g followed by:

- s: start
- h: home
- n: notifications
- l: local timeline
- t: federated timeline
- f: favourites
- u: own profile
- p: pinned toots
- b: blocked users
- m: muted users

* Add hotkey for focusing search, make escape un-focus compose/search

* Fix focusing notifications column, fix hotkeys in compose textarea
2017-10-06 01:07:59 +02:00
Nolan Lawson 334a446313 Fix emoji sequence bug in substring-trie (#5191)
Fixes #5188
2017-10-03 13:11:22 +02:00
abcang cb3b0c1a0f Update react-router-scroll at yarn.lock (#5154) 2017-09-30 15:50:02 +02:00
Eugen Rochko ebb8c89207 Upgrade to React 16 (#5119)
* Upgrade to React 16.0.0

* Disable some uncritical tests while chai-enzyme remains incompatible
2017-09-30 04:29:56 +02:00
Nolan Lawson 0060f98847 Remove react-sizeme (#5143)
* Remove react-sizeme

* Fix aspect ratio in "sensitive" mode
2017-09-29 22:46:43 +02:00
Eugen Rochko 2f079573ed In detail status view, display attachment uncropped if there's only one (#5054)
* In detail status view, display attachment uncropped if there's only one

* Make media spoiler the size of the media it hides, enable on static
2017-09-24 05:58:30 +02:00
Eugen Rochko 846cd4e838 Switch from EmojiOne to Twemoji, different emoji picker (#5046)
* Switch from EmojiOne to Twemoji, different emoji picker

* Make emoji-mart use a local spritesheet

* Fix emojify test

* yarn manage:translations
2017-09-23 01:41:00 +02:00
Eugen Rochko 034fab39ab Make dropdowns render into portal, expand animation (#5018)
* Make dropdowns render into portal, expand animation

* Improve actions modal style
2017-09-22 04:59:17 +02:00
Yamagishi Kazutoshi e0cda4a851 Update react-intl to version 2.4.0 (#4820) 2017-09-06 16:25:19 +02:00
Yamagishi Kazutoshi c1633eeb0f Update webpack and related dependencies (without extract-text-webpack-plugin) (#4410) 2017-07-28 05:16:12 +02:00
Yamagishi Kazutoshi aa803153e2 Remove Storybook (#4397) 2017-07-27 22:30:27 +02:00
Yamagishi Kazutoshi f2233c3e25 Update intersection-observer to version 0.4.0 (#4398) 2017-07-27 16:20:48 +02:00
Sorin Davidoi ebf5a06084 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
Ondřej Hruška 02f896c12e Fix broken CSS reload due to webpack upgrade (#4250) 2017-07-18 18:42:45 +02:00
Sorin Davidoi c1f201c49a 🎄🔨 Force tree shake emojione (#4202)
* chore(yarn): Install babel-plugin-preval as development dependency

* feat(babel): Add preval as a plugin

* feat(emojione_light): Prevaled module what tree-shaked emojione

* refactor(emoji): Use emojione_light

* feat: Preload emojione_picker bundle

* fix(emojione_light): Do not use Object.entries

* fix(emojify): Update tests

* chore(emojione_light): Remove silly ascii art
2017-07-14 20:30:12 +02:00
unarist eeb5923e89 Add object-fit polyfill for Edge (#4182) 2017-07-14 01:59:34 +02:00
Sorin Davidoi 0c7c188c45 Web Push Notifications (#3243)
* feat: Register push subscription

* feat: Notify when mentioned

* feat: Boost, favourite, reply, follow, follow request

* feat: Notification interaction

* feat: Handle change of public key

* feat: Unsubscribe if things go wrong

* feat: Do not send normal notifications if push is enabled

* feat: Focus client if open

* refactor: Move push logic to WebPushSubscription

* feat: Better title and body

* feat: Localize messages

* chore: Fix lint errors

* feat: Settings

* refactor: Lazy load

* fix: Check if push settings exist

* feat: Device-based preferences

* refactor: Simplify logic

* refactor: Pull request feedback

* refactor: Pull request feedback

* refactor: Create /api/web/push_subscriptions endpoint

* feat: Spec PushSubscriptionController

* refactor: WebPushSubscription => Web::PushSubscription

* feat: Spec Web::PushSubscription

* feat: Display first media attachment

* feat: Support direction

* fix: Stuff broken while rebasing

* refactor: Integration with session activations

* refactor: Cleanup

* refactor: Simplify implementation

* feat: Set VAPID keys via environment

* chore: Comments

* fix: Crash when no alerts

* fix: Set VAPID keys in testing environment

* fix: Follow link

* feat: Notification actions

* fix: Delete previous subscription

* chore: Temporary logs

* refactor: Move migration to a later date

* fix: Fetch the correct session activation and misc bugs

* refactor: Move migration to a later date

* fix: Remove follow request (no notifications)

* feat: Send administrator contact to push service

* feat: Set time-to-live

* fix: Do not show sensitive images

* fix: Reducer crash in error handling

* feat: Add badge

* chore: Fix lint error

* fix: Checkbox label overlap

* fix: Check for payload support

* fix: Rename action "type" (crash in latest Chrome)

* feat: Action to expand notification

* fix: Lint errors

* fix: Unescape notification body

* fix: Do not allow boosting if the status is hidden

* feat: Add VAPID keys to the production sample environment

* fix: Strip HTML tags from status

* refactor: Better error messages

* refactor: Handle browser not implementing the VAPID protocol (Samsung Internet)

* fix: Error when target_status is nil

* fix: Handle lack of image

* fix: Delete reference to invalid subscriptions

* feat: Better error handling

* fix: Unescape HTML characters after tags are striped

* refactor: Simpify code

* fix: Modify to work with #4091

* Sort strings alphabetically

* i18n: Updated Polish translation

it annoys me that it's not fully localized :P

* refactor: Use current_session in PushSubscriptionController

* fix: Rebase mistake

* fix: Set cacheName to mastodon

* refactor: Pull request feedback

* refactor: Remove logging statements

* chore(yarn): Fix conflicts with master

* chore(yarn): Copy latest from master

* chore(yarn): Readd offline-plugin

* refactor: Use save! and update!

* refactor: Send notifications async

* fix: Allow retry when push fails

* fix: Save track for failed pushes

* fix: Minify sw.js

* fix: Remove account_id from fabricator
2017-07-13 22:15:32 +02:00
Yamagishi Kazutoshi c45a75ad34 Update dependencies for Node.js (2017-07-12) (#4167)
* Update @storybook/addon-actions to version 3.1.8

* Update @storybook/react to version 3.1.8

* Update autoprefixer to version 7.1.2

* Update babel-loader to version 7.1.1

* Update babel-preset-env to version 1.6.0

* Update chai to version 4.1.0

* Update js-yaml to version 3.9.0

* Update jsdom to version 11.1.0

* Update postcss-smart-import to version 0.7.5

* Update sinon to version 2.3.7

* Update substring-trie to version 1.0.1

* Update webpack to version 3.2.0

* Update webpack-manifest-plugin to version 1.1.2

* yarn upgrade

* Upgrade extract-text-webpack-plugin to version 3.0.0

* Upgrade intl-relativeformat to version 2.0.0
2017-07-12 15:55:17 +02:00
unarist e670fa2af6 Update es5-ext to avoid CSP violation (#4145)
Since es5-ext used `new Function("...")`, it caused CSP violation unless "unsafe-eval" included. So this patch updates it to the version which fixes it.

Note that this package is used in polyfills, so loaded only if needed. I've encountered this issue on iOS9.

cf. medikoo/es5-ext@d3864493
2017-07-10 19:41:55 +02:00
Nolan Lawson 5fa2dd6e65 Use babel-plugin-transform-react-inline-elements (#4109) 2017-07-09 17:34:05 +02:00
Sorin Davidoi fc4c74660b Swipeable views (#4105)
* feat: Replace react-swipeable with react-swipeable-views

* fix: iOS 9
2017-07-09 15:02:26 +02:00
Yamagishi Kazutoshi 91d548f7e6 Update webpack-dev-server to v2.5.1 (#4094) 2017-07-07 14:12:45 +02:00
Yamagishi Kazutoshi cbe94b88e2 Change webpack-dev-server repository (#4061) 2017-07-04 15:19:54 +02:00
Yamagishi Kazutoshi a9c326b200 Upgrade chai-enzyme, precss and uws (#4010)
* Update chai-enzyme to v0.8.0

* Upgrade precss to v2.0.0

* Upgrade uws to v8.14.0
2017-07-03 11:56:58 +02:00
Nolan Lawson e282580101 Faster emojify() by avoiding str.replace() entirely (#4049) 2017-07-03 11:02:36 +02:00
Yamagishi Kazutoshi 5c7a4f0b32 Remove babel-cli (#4011) 2017-06-30 13:40:14 +02:00
Yamagishi Kazutoshi ead14f5bf0 Upgrade jsdom to version 11.0.0 (#3994) 2017-06-29 13:03:03 +02:00
Yamagishi Kazutoshi e2dd576a1b Update dependencies for Node.js (#3967)
* Update @storybook/addon-actions to v3.1.6

* Update @storybook/react to v3.1.6

* Update babel-loader to v7.1.0

* Update babel-plugin-transform-react-remove-prop-types to v0.4.6

* Update enzyme to v2.9.1

* Update fsevents to v1.1.2

* Update intersection-observer to v0.3.2

* Update npmlog to v4.1.2

* Update pg to v6.4.0

* Update postcss-loader to v2.0.6

* Update rails-ujs to v5.1.2

* Update react to v15.6.1

* Update react-addons-shallow-compare to v15.6.0

* Update react-dom to v15.6.0

* Update react-notification to v6.7.1

* Update react-test-renderer to v15.6.1

* Update react-textarea-autosize to v5.0.7

* Update redux to v3.7.1

* Update resolve-url-loader to v2.1.0

* Update sass-loader to v6.0.6

* Update sinon to v2.3.5

* Update stringz to v0.2.2

* Update uuid to v3.1.0

* Update websocket.js to v0.1.12

* Update yargs to v8.0.2

* yarn upgrade
2017-06-27 13:46:11 +02:00
Eugen Rochko f7301bd5b9 Add overview of active sessions (#3929)
* Add overview of active sessions

* Better display of browser/platform name

* Improve how browser information is stored and displayed for sessions overview

* Fix test
2017-06-25 16:54:30 +02:00
Eugen Rochko 676f577e7e Fix webpack-dev-server until it's fixed upstream (#3916) 2017-06-23 19:40:51 +02:00
Yamagishi Kazutoshi c1a8e3d1eb Use Class and Property Decorators (#3730)
ref https://tc39.github.io/proposal-decorators/
2017-06-23 19:36:54 +02:00
Eugen Rochko 281f07244b Merge branch 'swipe-gestures' of git://github.com/sorin-davidoi/mastodon into sorin-davidoi-swipe-gestures 2017-06-23 17:52:39 +02:00
Nolan Lawson e078919f07 Upgrade to Webpack 3 with module concatenation (#3912) 2017-06-23 17:44:55 +02:00
Sorin Davidoi 3d403a013d chore(yarn): Install react-swipeable 2017-06-23 13:40:58 +02:00
Sorin Davidoi 8f03fdce7f 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
Yamagishi Kazutoshi 53e42bf91e Upgrade Webpacker to version 2.0 (#3729) 2017-06-18 02:57:09 +02:00
unarist 2356580cee Use cross-env for npm run on Windows (#3789) 2017-06-17 01:14:42 +02:00
Yamagishi Kazutoshi c93d0978f2 Upgrade react-immutable-pure-component to version 1.0.0 (#3786) 2017-06-16 01:46:12 +02:00
Yamagishi Kazutoshi a208e7d655 Update React to version v15.6 (#3736) 2017-06-14 16:16:00 +02:00
Yamagishi Kazutoshi ddd3251912 Update dependencies for Node.js (#3705)
* Update @storybook/addon-actions to v3.1.2

* Update @storybook/react to v3.1.2

* Update babel-core to v6.25.0

* Update babel-preset-env to v1.5.2

* Update chai to version v4.0.2

* Update extract-text-webpack-plugin to v2.1.2

* Update file-loader to v0.11.2

* Update intersection-observer to v0.3.0

* Update pg to v6.2.4

* Update sinon to v2.3.4

* Update style-loader to v0.18.2

* Update websocket.js to v0.1.10

* Update react-redux-loading-bar to v2.9.2

* yarn upgrade
2017-06-12 10:54:02 +02:00
Yamagishi Kazutoshi ad4a28f4f6 Refactor translationRunner.js (#3604)
- Use yargs instead of minimist
- Simplify validators
- Fix typo (RFC5626 -> RFC5646)
2017-06-06 13:31:57 +02:00
Yamagishi Kazutoshi 943775fd90 Update dependencies of Node.js (#3561)
* Update axios to version 0.16.2

* Update css-loader to version 0.28.4

* Update postcss-smart-import to version 0.7.4

* Update react-immutable-pure-component to version 0.0.5

* Update stringz to version 0.2.1

* Update style-loader to version 0.18.1

* Update websocket.js to version 0.1.9

* yarn upgrade
2017-06-04 17:13:21 +02:00
Yamagishi Kazutoshi b0fe58dc69 Upgrade storybook to v3 (#3558) 2017-06-04 16:26:07 +02:00
Yamagishi Kazutoshi 1162f61ca3 Remove unused loaders of webpack (#3495) 2017-06-01 17:27:35 +02:00
Yamagishi Kazutoshi 39ea5c0e2e Improve tests for JavaScript (#3496)
- Upgrade dependencies
    - chai (3.5.0 -> 4.0.1)
    - chai-enzyme (0.6.1 -> 0.7.1)
    - sinon (2.2.0 -> 2.3.2)
- Change extensions from .jsx to .js
- Don't assign `React` to `global`
- Check code format using ESLint
2017-06-01 17:27:15 +02:00
Nolan Lawson c00ead8a72 Remove react-imageloader (#3423)
* Remove react-imageloader

* add eslint-disable-line

* improve image loading experience

* remove unneeded import

* use PureComponent

* Use componentWillMount instead of constructor
2017-05-31 17:07:25 +02:00
Nolan Lawson 0e12a8dab9 Improve scheduling of requestIdleCallback tasks (#3477) 2017-05-31 15:11:33 +02:00
Yamagishi Kazutoshi 5ac4d677e9 Remove unused React Storybook addon (#3434) 2017-05-30 15:12:12 +02:00
Yamagishi Kazutoshi e0ada97770 Update dependencies of Node.js (#3067)
* Update autoprefixer to version 7.1.0

* Update axios to version 0.16.1

* Update babel-cli to version 6.24.1

* Update babel-eslint to version 7.2.3

* Update babel-preset-react to version 6.24.1

* Update coffee-script to version 1.12.6

* Update css-loader to version 0.28.1

* Update express to version 4.15.2

* Update js-yaml to version 3.8.4

* Update mocha to version 3.4.1

* Update jsdom to version 10.1.0

* Update npmlog to version 4.1.0

* Update postcss-smart-import to version 0.7.0

* Update postcss-loader to version 2.0.5

* Update pg to version 6.1.5

* Update prop-types to version 15.5.10

* Update rails-ujs to version 5.1.1

* Update redis to version 2.7.1

* Update sass-loader to version 6.0.5

* Update stringz to version 0.2.0

* Update webpack to version 2.5.1

* Update style-loader to version 0.17.0

* Update sinon to version 2.2.0

* Update react-motion to version 0.5.0

* Update react-notification to version 6.7.0

* Update react-redux-loading-bar to version 2.9.0

* Update react-intl to version 2.3.0

* Update redux-immutable to version 4.0.0

* Update reselect to version 3.0.1

* Update react-toggle to version 3.0.1

* Update react-simple-dropdown to version 3.0.0

* Update react-router to version 3.0.5

* Update react-router-scroll to version 0.4.2

* Update react-toggle to version 4.0.1

* yarn upgrade
2017-05-29 18:23:28 +02:00
Eugen Rochko 425d02287a Improve streaming API cluster logging (#3370)
* Improve streaming API cluster logging

* Less verbose error middleware logging (stack trace useless there)

* Fix error logging

* Prevent potential issue

* Add missing "done()" in catch of Promise.all, websocket heartbeat re-implemented like in example

* I actually forgot a done(), the absolute madman
2017-05-28 16:25:26 +02:00
Eugen Rochko c48772fd3f Introduce react-textarea-autosize instead of using style.height side effects (#3334) 2017-05-26 18:22:23 +02:00
Nolan Lawson 2469fd1cdc Add improved performance marks for development mode (#3297) 2017-05-25 14:09:55 +02:00
Yamagishi Kazutoshi 531c1bb245 Add localization of datetime in public page (#3296) 2017-05-25 14:09:25 +02:00
Sorin Davidoi 8e4d1cba00 Lazy load toots using IntersectionObserver (#3191)
* refactor(components/status_list): Lazy load using IntersectionObserver

* refactor(components/status_list): Avoid setState bottleneck

* refactor(components/status_list): Update state correctly

* fix(components/status): Render if isIntersecting is undefined

* refactor(components/status): Recycle timeout

* refactor(components/status): Reduce animation duration

* refactor(components/status): Use requestIdleCallback

* chore: Split polyfill bundles

* refactor(components/status_list): Increase rootMargin to 300%

* fix(components/status): Check if onRef is not defined

* chore: Add note about polyfill bundle splitting

* fix(components/status): Reduce animation duration to 0.3 seconds
2017-05-24 17:55:00 +02:00
Yamagishi Kazutoshi 860ffc0560 Focus the submit button (#3253)
Focus the submit button when confirmation modal is opened.

Also, changed cancellation link to button.
This makes the meaning clearer.
2017-05-23 13:10:41 +02:00
Eugen Rochko 48e7a22e34 Fix locale regression from #3055 (#3231) 2017-05-22 16:26:54 +02:00
Nolan Lawson 60e2b951de Add webpack-bundle-analyzer for production builds (#3170) 2017-05-22 15:42:11 +02:00
Nolan Lawson 9d04de1c8d Only load Intl data for current language (#3130)
* Only load Intl data for current language

* Extract common chunk only from application.js and public.js

* Generate locale packs, avoid caching on window object
2017-05-22 15:06:06 +02:00
Yamagishi Kazutoshi 4a3db71692 Remove react-autosuggest (#3140)
react-autosuggest is added from c49f6290eb

Dependence removed from b27066e154
2017-05-19 15:21:34 +02:00
Yamagishi Kazutoshi dc559d6b7a Downgrade eslint-plugin-jsx-a11y to v4.0.0 (#3131)
In Code Climate, eslint-plugin-jsx-a11y v4.0.0 is used.
Therefore, it seems that a warning is displayed.

ref https://github.com/codeclimate/codeclimate-eslint/pull/273
2017-05-19 11:44:28 +02:00
Sorin Davidoi f18a6c2cf2 feat(babel): Strip prop types (#3122)
* feat(babel): Strip prop types

* chore(babel): Indent

* fix(babel): Move babel-plugin-transform-react-remove-prop-types to dependencies
2017-05-19 02:42:21 +02:00
Nolan Lawson 4cc8ddabe5 Add transform-runtime for smaller Babel helpers (#3116) 2017-05-18 19:14:58 +02:00
Yamagishi Kazutoshi 72c8562cc9 Use babel-preset-env on Streaming Server (#2998)
* Use babel-preset-env on Streaming Server

Change the streaming server to use babel-preset-env as well as asset compilation.
This shortens the load time at first boot.

* remove babel-plugin-lodash
2017-05-14 13:47:31 +02:00
Yamagishi Kazutoshi 882e4f5322 Remove Babel plugin for ES Modules (#2975)
* Remove Babel plugin for ES Modules

Processing of ES Modules is executed by Webpack.
Don't have to do it on Babel side.

* Add plugin for test
2017-05-14 12:59:40 +02:00
Yamagishi Kazutoshi 2991a7cfe6 Use ES Class Fields & Static Properties (#3008)
Use ES Class Fields & Static Properties (currently stage 2) for improve class outlook.

Added babel-plugin-transform-class-properties as a Babel plugin.
2017-05-12 14:44:10 +02:00
Yamagishi Kazutoshi 654f4f62ed Remove dependencies that are no longer needed now (#2999)
There are some dependencies that are no longer needed anymore.
As a result, it took more time to install the package than necessary.

I want to delete them and shorten the installation time.
2017-05-12 04:04:41 +02:00
Nolan Lawson 0ec77c5b3e Add dynamic polyfills for older browsers (#2985)
Fixes #2941
2017-05-11 11:26:06 +02:00
Yamagishi Kazutoshi 42eb841dc2 Remove jquery-ujs (#2939)
* Remove jquery-ujs

* fix for eslint
2017-05-09 14:50:43 +02:00
Yamagishi Kazutoshi f000673599 Remove local_time gem, and add similar (#2875) 2017-05-07 15:22:54 +02:00
Nolan Lawson 5b6c2a1e72 upgrade emojione-picker (#2874) 2017-05-07 15:22:42 +02:00
Koala Yeung 6f71cfeff9 Eslintrc fix (#2850)
* eslintrc: adapt changes in eslint-plugin-jsx-a11y

* Replace 'jsx-a11y/img-has-alt' with 'jsx-a11y/alt-text'.
  Reference: evcohen/eslint-plugin-jsx-a11y@24b6193

* Replace 'jsx-a11y/onclick-has-focus' with 'jsx-a11y/interactive-supports-focus'
  Reference: evcohen/eslint-plugin-jsx-a11y@cbdfeb8

* Replace 'jsx-a11y/onclick-has-role' with 'jsx-a11y/no-noninteractive-element-interactions'
  Reference: evcohen/eslint-plugin-jsx-a11y@18c9b71

* Update eslint-plugin-jsx-a11y to 5.0.0

Follow the change in Code Climate. Make sure the same eslintrc
can be executed locally and in Code Climate.

* Convert .eslintrc.json to equivlant .eslintrc.yml

* Less quotes and commas, more readability, allow comment.
2017-05-06 21:26:54 +02:00
Eshin Kunishima 67b7d3d3b6 Replace ws with uws (#2807)
* Replace ws with uws

* fix indent

* Adjust indentation

* remove trailing space
2017-05-06 17:05:38 +02:00
Nolan Lawson 553e13144f remove legacy decorators, use lodash.debounce (#2830) 2017-05-06 11:05:32 +02:00
Nolan Lawson 37caf0b36e separate .babelrc for prod/dev, add babel-plugin-lodash (#2829) 2017-05-06 04:18:23 +02:00
Yamagishi Kazutoshi e95983f5df Decode IDNA in PreviewCard (#2781) 2017-05-04 15:52:08 +02:00
Eugen Rochko f5bf5ebb82 Replace sprockets/browserify with Webpack (#2617)
* Replace browserify with webpack

* Add react-intl-translations-manager

* Do not minify in development, add offline-plugin for ServiceWorker background cache updates

* Adjust tests and dependencies

* Fix production deployments

* Fix tests

* More optimizations

* Improve travis cache for npm stuff

* Re-run travis

* Add back support for custom.scss as before

* Remove offline-plugin and babili

* Fix issue with Immutable.List().unshift(...values) not working as expected

* Make travis load schema instead of running all migrations in sequence

* Fix missing React import in WarningContainer. Optimize rendering performance by using ImmutablePureComponent instead of
React.PureComponent. ImmutablePureComponent uses Immutable.is() to compare props. Replace dynamic callback bindings in
<UI />

* Add react definitions to places that use JSX

* Add Procfile.dev for running rails, webpack and streaming API at the same time
2017-05-03 02:04:16 +02:00
Ash Furrow 48652cb41e Fixes string length issue for multibyte characters. (#2443) 2017-04-25 17:37:51 +02:00
Keiji, Yoshimi 2bf7e81ed5 update emojione-picker for fixed warnings. (#2324) 2017-04-22 17:28:02 +02:00
Yamagishi Kazutoshi 1948f9e767 Remove deprecated features at React v15.5 (#1905)
* Remove deprecated features at React v15.5

- [x] React.PropTypes
- [x] react-addons-pure-render-mixin
- [x] react-addons-test-utils

* Uncommented out & Add browserify_rails options

* re-add react-addons-shallow

* Fix syntax error from resolve conflicts

* follow up 59a77923b3
2017-04-21 20:05:35 +02:00
Christoph Witzany 556f68ab15 Make Docker image buildable on ARM (#2065)
* after yarn upgrade

* after manually removing node-gyp as top level dependency
2017-04-20 13:29:38 +02:00
Zac Anger f4045ba3d9 Add eslint-plugin-jsx-a11y (#1651)
* Add eslint-plugin-jsx-a11y.

* Fix npm script.

* Adjust npm scripts so test also runs lint.

* Fix existing lint errors.

* Don't break on a11y issues.

* Add role and tabIndex.

* Add vim and Mac files to .gitignore and .dockerignore.

* Handle htmlFor (partially), a that's actually a button.

* Fix missing tabIndex.

* Add cursor:pointer to load-more

* Revert change to load_more.

* Fixes based on review.

* Update yarn.lock.

* Don't try to install fsevents on Linux (hides warning noise).
2017-04-15 13:27:27 +02:00
Eugen b22b2cbfac Fix #1491 - Fix broken notifications, broken Link header parsing for exclude_types (#1548) 2017-04-11 22:53:58 +02:00
Gavin Mogan 3672a799d4 Dev Tooling fixes (eslint/editorconfig) (#1398)
* Add eslint to dev dependancies so it gets installed for the repo

yarn add --dev eslint babel-eslint eslint-plugin-reac

project specific version of eslint, you can globally install eslint-cli
if you want the global runtime, or add .bin to your path

* fix eslint errors about inconsitent returns

* eslint ignore the same as git ignore. allows for eslint .

* Add editorconfig file so everyones editor will be setup to follow the same standards
2017-04-11 00:36:03 +02:00
Eugen Rochko 333e44c3fc Improve emojis - use SVGs where possible 2017-03-29 22:27:24 +02:00
Eugen Rochko 952bce3023 Replace howler.js with simple <audio />, will hopefully resolve
some weird mobile browser behaviours
2017-03-13 17:12:30 +01:00
Eugen Rochko 89fc2d7f48 Fix #372 - Emoji picker 2017-03-02 00:57:55 +01:00
Eugen Rochko b44dd38360 Fix broken dependency on inner react utility function 2017-02-26 01:34:56 +01:00
Eugen Rochko 2c50687279 Improve compose form performance, upgrade JS dependencies. LightingBox
now allows to cycle through multiple images
2017-02-26 01:23:44 +01:00
Eugen Rochko 4d2be9f432 Add unique request IDs to streaming API to improve logs 2017-02-05 23:37:25 +01:00
Eugen Rochko b5bf807a34 Remove react-dnd as it was interfering with text selection. Move content
warning mentions preview into area where actual content would be
2017-02-05 04:11:14 +01:00
Eugen Rochko dbb7e5a644 Getting started on draggable columns 2017-02-05 01:58:25 +01:00