Alexander Skvortsov
5e465f6051
Extract Composer state ( #2161 )
...
Like previous "state PRs", this moves app-wide logic relating to
our "composer" widget to its own "state" class, which can be
referenced and called from all parts of the app. This lets us
avoid storing component instances, which we cannot do any longer
once we update to Mithril v2.
This was not as trivial as some of the other state changes, as we
tried to separate DOM effects (e.g. animations) from actual state
changes (e.g. minimizing or opening the composer).
New features:
- A new `app.screen()` method returns the current responsive screen
mode. This lets us check what breakpoint we're on in JS land
without hardcoding / duplicating the actual breakpoints from CSS.
- A new `SuperTextarea` util exposes useful methods for directly
interacting with and manipulating the text contents of e.g. our
post editor.
- A new `ConfirmDocumentUnload` wrapper component encapsulates the
logic for asking the user for confirmation when trying to close
the browser window or navigating to another page. This is used in
the composer to prevent accidentally losing unsaved post content.
There is still potential for future cleanups, but we finally want
to unblock the Mithril update, so these will have to wait:
- Composer height change logic is very DOM-based, so should maybe
not sit in the state.
- I would love to experiment with using composition rather than
inheritance for the `ComposerBody` subclasses.
2020-07-25 00:17:25 +02:00
Alexander Skvortsov
c08a56e9d8
Notifications Dropdown: Remove init method that doesn't do anything (cleanup)
2020-07-24 13:01:45 -04:00
Alexander Skvortsov
5786f1a10b
Fix discussions user page ( #2225 )
...
* Fixed up discussions user page, improve discussion list state signature
2020-07-03 01:16:08 -04:00
Clark Winkelmann
359b4ab5a3
Fix user card issue by reverting to original behavior ( #2224 )
...
* Fix user card issue by reverting to original behavior
2020-07-02 18:32:41 -04:00
David Sevilla Martín
8dd5420405
Switch from 'moment' to 'dayjs' ( #2219 )
...
* Switch from 'moment' to 'dayjs'
* Use humanize code from duration plugin (without actual plugin) for time lapsed events
2020-06-30 20:33:00 -04:00
Alexander Skvortsov
44376cef61
Extract ModalManagerState from ModalManager ( #2162 )
2020-06-30 19:59:16 -04:00
Alexander Skvortsov
ea9d601338
Extract AlertManagerState from AlertManager ( #2163 )
2020-06-30 18:06:59 -04:00
Alexander Skvortsov
a33fbbf814
Add index page title, add mechanism to clear title from defaultRoute. ( #2047 )
...
* Add "All Descriptions title to index
* Added system to clear custom title if we're on the default route
2020-06-27 14:18:49 -04:00
Franz Liedke
b44b79eba9
Fix typo and update outdated doc block
2020-06-26 18:23:56 +02:00
Franz Liedke
7816b61bfb
Remove documentation for obsolete component prop
2020-06-26 16:06:56 +02:00
Alexander Skvortsov
71e313e677
Clean up app.current, app.previous in JS ( #2156 )
...
- Encapsulate app.current, app.previous in PageState objects
- Reorganize Page classes to use one central base class in common
Co-authored-by: Franz Liedke <franz@develophp.org >
2020-06-19 17:41:26 -04:00
Franz Liedke
898d68d9f3
Remove leftover property
...
Refs #2150 .
2020-06-19 02:27:01 +02:00
Alexander Skvortsov
62fe9db732
Don't store PostUser instance in CommentPost ( #2184 )
...
* Don't save component state in CommentPost
2020-06-18 20:10:25 -04:00
Alexander Skvortsov
5c1663d8f1
Move Discussion List State into its own class ( #2150 )
...
Extract discussion list state
2020-06-18 19:53:40 -04:00
Alexander Skvortsov
4a804dbbbc
Remove app.search instance, cache app.cache.searched ( #2151 )
...
* Moved search state logic into search state
2020-06-18 18:47:01 -04:00
Alexander Skvortsov
646b35374d
Don't store checkbox instances in NotificationGrid ( #2183 )
...
* Don't store checkbox states in NotificaitonGrid, use props for loading in Checkbox and Switch, replace preferenceSaver with internal management of loading state
2020-06-18 17:28:05 -04:00
Alexander Skvortsov
65f2d5fb75
Extract NotificationList state ( #2185 )
...
* Extract NotificationList state
2020-06-18 17:08:06 -04:00
Hasan Özbey
0aed3764c4
Scroll to edited post or inform the user ( #2108 )
...
* scroll to edit or inform the user
2020-05-30 22:28:08 -04:00
Franz Liedke
89ef14faf1
Run prettier for all JS files
2020-04-17 11:57:55 +02:00
w-4
117c2f65ac
Fix PostStreamScrubber click ( #1945 )
2020-04-10 21:16:57 +02:00
Sami Mazouz
30942bdf38
Fix new post injected above unread sticky ( #1868 )
...
Refresh the discussion list instead of prepending the new post
2020-04-03 21:26:51 +02:00
Daniël Klabbers
2e2aa8747e
fixed an issue with Post--by-start-user for discussions that contain posts of deleted users
2020-04-01 14:40:40 +02:00
Daniël Klabbers
090b05736a
showing start user in class list now
2020-03-09 13:39:26 +01:00
D Mata
f9556d9d6a
Update AvatarEditor.js onchange to oninput ( #1570 )
...
onchange does not work in IE11 and other IE browsers. This change works with all modern browsers as well.
2020-02-10 23:54:41 +01:00
Franz Liedke
2f3d9995d1
Fix race condition in post preview
...
The post composer could have been closed in between scheduling and
executing the callback.
Fixes flarum/org#58.
Refs #1881 .
2020-02-07 12:17:11 +01:00
Clark Winkelmann
02ceed4fed
Fix the "reply posted" alert empty body
2020-01-26 23:37:19 +01:00
David Sevilla Martín
02899d4f68
Add Content for User page, preload user & throw 404 accordingly ( #1901 )
2020-01-23 00:01:26 +01:00
Daniël Klabbers
1ba4a0b87e
Fix existing Post component classes being dropped
2019-11-12 20:26:07 +01:00
Daniël Klabbers
1f2566c32c
Improved naming of class for post by actor.
...
Made class list for post extensible by using a separate method.
2019-11-11 12:59:26 +01:00
Matthew Kilgore
d5d769ebb1
Added border around post made by active user
2019-11-11 12:13:36 +01:00
Madalin Tache
bbd891965f
Update window size ( #1894 )
...
This small change attempts to fix #1727 , as i just got my eye on it and figured i could simply fix it while seeing it.
2019-10-01 23:48:54 +02:00
David Sevilla Martín
7a684660e9
Enable scrollbars in login button popups ( #1900 )
...
Fixes #1716
2019-10-01 23:37:42 +02:00
David Sevilla Martín
24964b94bf
Mark notification as read without visiting discussion ( #1874 )
2019-09-09 23:36:06 +02:00
David Sevilla Martín
2e647cdda8
Fix error thrown if textarea doesn't exist in TextEditor ( #1852 )
...
* Prevent textarea not existing from causing errors to be thrown
* Replace [0] with .length
2019-09-09 17:05:11 -04:00
Franz Liedke
0191babb05
Optimize ScrollListener performance
...
Listen to "scroll" event and throttle callback executions instead
of actively polling for changes to the scroll position.
Fixes #1222 .
2019-09-05 02:17:09 +02:00
Daniël Klabbers
c7d2e165d7
Fixes #1686
...
- further cleaned up the toggle action
- there's no way to remove the redraws because then the jquery isn't being fired properly
2019-01-25 05:37:45 +01:00
Daniël Klabbers
c67fb2d4b6
fixes #1686 , unable to edit user password
2019-01-16 09:58:22 +01:00
Toby Zerner
40dc6ac604
Fix discussion list scroll position not being maintained when hero is not visible
2018-12-03 08:50:54 +10:30
Toby Zerner
b474843cc2
Clear the search loading indicator after pressing Enter
2018-11-14 11:38:28 +10:30
David Sevilla Martín
e8b8cd0078
Move EditUserModal fields into an ItemList to make more extendable ( #1593 )
2018-11-14 08:00:43 +10:30
Toby Zerner
b826f9ce36
Trigger input event when text is programmatically inserted
2018-11-12 17:21:37 +10:30
Toby Zerner
c13dfa2228
Add a toolbar area to the TextEditor component
...
This is to be used for formatting buttons and the like. Although it is
displayed in the controls area at the moment, it is conceptually
different and may be relocated to the top of the text editor in the
future.
2018-11-12 17:21:15 +10:30
Toby Zerner
bf3934d16f
Improve appearance of text editor buttons
...
- Change preview icon to Font Awesome Regular instead of Solid
- Give the preview button a tooltip
- Change submit button icon to paper plane (shown on mobile)
- Tweak mobile header button touch target
- Scroll overflowing text editor controls horizontally
2018-11-12 17:19:37 +10:30
Clark Winkelmann
0f9118fe2b
Clean PostStreamScrubber code
2018-11-11 19:03:22 +01:00
Clark Winkelmann
95f0edcd80
Fix scrubber index not limited to max items count when bypassing view()
2018-11-11 19:00:51 +01:00
Toby Zerner
9de786d1e6
Fix notification list not displaying "empty" message
2018-11-11 16:46:54 +10:30
Toby Zerner
3006f58274
The document JS payload attribute was previously renamed to apiDocument
2018-09-30 09:24:25 +09:30
Toby Zerner
1736fe3f58
Clean up PostsUserPage placeholder
2018-09-23 10:12:12 +09:30
David Sevilla Martín
26a5b107bd
Make user posts page similar to discussion page, add empty text
2018-09-22 14:02:14 -04:00
Clark Winkelmann
fe868af224
Clean composer promises ( #1439 )
...
* Remove unused login promise code
* Make promise usage consistent across composer action methods
2018-09-22 14:25:19 +09:30