Sorin Davidoi and Eugen Rochko
a9a0c854e1
fix(components/media_modal): Style issues ( #4187 )
2017-07-13 22:18:18 +02:00
Sorin Davidoi and Eugen Rochko
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
Sorin Davidoi and Eugen Rochko
cc68d1945b
refactor: Rewrite immutablejs import statements using destructuring ( #4147 )
2017-07-11 01:00:14 +02:00
Sorin Davidoi and Eugen Rochko
4122a837fa
fix(components/media_modal): Aspect ratio ( #4128 )
...
* fix(components/media_modal): Aspect ratio
* fix: Remove useless style
2017-07-09 18:49:07 +02:00
Sorin Davidoi and Eugen Rochko
fc4c74660b
Swipeable views ( #4105 )
...
* feat: Replace react-swipeable with react-swipeable-views
* fix: iOS 9
2017-07-09 15:02:26 +02:00
Sorin Davidoi and Eugen Rochko
37c832cdf7
refactor: Make all reducers sync ( #4125 )
2017-07-09 12:16:08 +02:00
Sorin Davidoi and Eugen Rochko
91cacb1e8f
fix: Rerender Bundle on route change ( #4120 )
2017-07-08 18:34:55 +02:00
Sorin Davidoi and Eugen Rochko
348d6f5e75
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
Sorin Davidoi and Eugen Rochko
60da49f856
fix(components/columns_area): Increase delta for swipe detection ( #4037 )
2017-07-02 15:55:50 +02:00
Sorin Davidoi and Eugen Rochko
64d9c016bd
fix(components/status): Up & down jump due to content being added to the DOM ( #3972 )
2017-06-27 18:43:53 +02:00
Sorin Davidoi and Eugen Rochko
be92babd00
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
Sorin Davidoi and Eugen Rochko
4ce1540094
fix(features/compose): Handle external changes to the textarea ( #3632 )
2017-06-25 21:43:27 +02:00
Sorin Davidoi and Eugen Rochko
d23293c762
feat(components/onboarding_modal): Swipe between pages ( #3934 )
2017-06-24 23:17:39 +02:00
Sorin Davidoi and Eugen Rochko
2211e8d1cd
Revocable sessions ( #3616 )
...
* feat: Revocable sessions
* fix: Tests using sign_in
* feat: Configuration entry for the maximum number of session activations
2017-06-23 18:50:53 +02:00
Sorin Davidoi
d8c4781377
fix: Apply :hover, :focus and :active only when multiple columns
2017-06-23 13:48:46 +02:00
Sorin Davidoi
bc6e958229
feat: Swipeable media
2017-06-23 13:48:46 +02:00
Sorin Davidoi
a6d8d1036a
feat: Swipeable columns
2017-06-23 13:48:46 +02:00
Sorin Davidoi
3d403a013d
chore(yarn): Install react-swipeable
2017-06-23 13:40:58 +02:00
Sorin Davidoi and Eugen Rochko
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
Sorin Davidoi and Eugen Rochko
0f52e42c2d
fix(status): Content jump due to height changes ( #3734 )
2017-06-13 20:46:21 +02:00
Sorin Davidoi and Eugen Rochko
8acadeea76
fix: Warn if JavaScript is disabled ( #3634 )
2017-06-08 00:52:56 +02:00
Sorin Davidoi and Eugen Rochko
8cf8ce4ac0
fix(components/autosuggest_textarea): Race condition regarding onBlur ( #3631 )
2017-06-07 20:05:53 +02:00
Sorin Davidoi and Eugen Rochko
9304114b57
Ignore .idea folder ( #3516 )
...
Used by Intellij IDEA / WebStorm / RubyMine.
2017-06-02 16:19:11 +02:00
Sorin Davidoi and Eugen Rochko
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
Sorin Davidoi and Eugen Rochko
2c405aed55
Performance improvements ( #3168 )
...
* refactor(components/status_list): Avoid quering scrollTop if not necessary
* refactor(components/dropdown_menu): Do not render items if not expanded
* refactor: Cherry-pick react-motion imports
* refactor(compose/privacy_dropdown): Do not render options if not open
* refactor(components/column_collapsable): Do not render children if collapsed
2017-05-20 14:58:13 +02:00
Sorin Davidoi and Eugen Rochko
b369fc2de4
feat: Use CSS contain to avoid computations ( #3158 )
2017-05-20 01:26:46 +02:00
Sorin Davidoi and Eugen Rochko
1548695c83
Avoid useless renders ( #3141 )
...
* feat(eslint): Set react/jsx-no-bind: error
* refactor(notifications/setting_toggle): Do not use bind
* refactor(components/dropdown_menu): Do not use bind
* refactor(components/autosuggest_textarea): Do not use bind
* refactor(compose/privacy_dropdown): Do not use bind
* refactor(compose/upload_form): Do not use bind
* refactor(components/status): Do not use bind
* refactor(components/onboarding_modal): Do not use bind
* refactor: PR feedback
* chore(notifications/setting_toggle): Lint
* refactor: PR feedback
2017-05-19 20:58:12 +02:00
Sorin Davidoi and Eugen Rochko
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
Sorin Davidoi and Eugen Rochko
07e875972a
refactor: Import from react-router/lib ( #3117 )
2017-05-18 19:14:03 +02:00