Commit graph

57 commits

Author SHA1 Message Date
Chris McCord 396cd33990 Checkpoint 2023-03-06 10:57:42 -05:00
Chris McCord 1f1906f67d Songs count 2023-02-01 16:04:34 -05:00
Chris McCord 446b861a67 Vendor sortable 2023-01-26 19:40:14 -05:00
Chris McCord 7b43323813 WIP 2023-01-26 19:39:59 -05:00
Chris McCord b676f7aeb4 WIP 2023-01-26 14:05:24 -05:00
Chris McCord 34e19c187c Fix import 2022-11-17 15:39:22 -05:00
Chris McCord 7bbce31bb9 Update to Phoenix 1.7 2022-11-17 10:01:20 -05:00
Chris McCord 6b02cfc614 Touchup 2022-08-03 09:40:48 -04:00
Chris McCord 626a7bc305 WIP 2022-08-03 09:40:48 -04:00
Nolan Darilek bb8f14cfe1 Remove unnecessary parameter. 2022-05-23 15:13:30 -05:00
Chris McCord 1604f55224 Remove symlink 2022-02-10 13:41:18 -05:00
Chris McCord 409431b1e7 Fix ping on reconnect 2022-02-10 13:40:58 -05:00
Chris McCord 819d5ecc98 Add accessible modal with focus_wrap component
The focus_wrap function component (and hook) can
be used to focus wrap any content.

The focus and focus_closest JS functions were added to
programmtaically focus an element on the client or
find the next element or previous element sibling when an
action is taken that requires moving focus to cloest item.

Co-authored-by: Nolan Darilek <nolan@thewordnerd.info>
2022-02-04 11:48:05 -05:00
Michael Crumm 645c4bd117
Add MediaMetadata to audio player when available 2022-02-03 09:50:32 -08:00
Chris McCord 1975f85cfe Fix ping 2022-01-31 15:42:41 -05:00
Chris McCord 8cd6048d4b Optimize presence and rate limit pings 2022-01-31 14:27:06 -05:00
Chris McCord 1caf809be7 WIP 2022-01-28 20:40:48 -05:00
Chris McCord 65f307b1fa Add ping 2022-01-27 20:42:36 -05:00
Chris McCord eecb14ecba Fix seekable songs 2022-01-27 14:41:26 -05:00
Chris McCord 214ec50f0e WIP 2022-01-27 13:03:42 -05:00
Chris McCord add1d15177 Add clustering with proxy file streaming 2022-01-27 09:36:04 -05:00
Chris McCord be420bdc44 Match topbar with theme 2022-01-14 11:05:41 -05:00
Chris McCord 9998e06caa Optimize presence.
Avoid fetching each user by passing in full pre-fetched
presences from Presence.fetch/2 callback.
Use temporary assigns in ProfileLive to avoid duping
presences in memeory.
Handle removes by a small hook event
2022-01-11 14:57:06 -05:00
Chris McCord cb781d855e Merge branch 'cm-tailwind-standalone' 2022-01-07 13:42:26 -05:00
Chris McCord c5b25aa5be Add standalone tailwind 2022-01-07 13:42:04 -05:00
Nolan Darilek 7b48c2fbaf Further simplify post-route handler.
* Use `HtmlElement.tabIndex` directly rather than going through attributes.
* Always restore `tabIndex` after focus.
* Remove `setTimeout` to simplify implementation.

This does have a disadvantage in that it leaves unnecessary `tabindex="1"` instances around. On the other hand, it does simplify the implementation and get the job done' so is probably a more clear example of how to do this correctly.
2021-12-22 12:41:19 -06:00
Nolan Darilek 7d09845b8c Remove unnecessary window.requestAnimationFrame. 2021-12-22 12:06:08 -06:00
Chris McCord bbb9693e8c WIP 2021-12-16 11:06:22 -05:00
Nolan Darilek 566a574c0a Initial attempt at accessibly announcing route updates.
* Add handler for `phx:page-loading-stop` that focuses either the first `<h1>` child of `<main>`, or `<main>` directly if no child `<h1>` is present. Make this our focus target.
* Cache original `tabindex` of target, if any, and assign it a temporary `tabindex1 of -1.
* Focus the target.
* After a long timeout, either restore the target's original `tabindex` or remove the temporary -1 value. Short timeouts didn't seem to perform the focus step. Neither did nested `requestAnimationFrame` calls.
2021-11-22 15:25:41 -06:00
Chris McCord cead091227
Update assets/js/app.js 2021-11-22 14:28:57 -05:00
Nolan Darilek a19a6091e6 When a dropdown is open, block Tab to avoid navigating away.
Under Windows, dropdowns cannot be tabbed off of. They are only closed by either selecting an item or pressing Escape.
2021-11-22 12:55:01 -06:00
Chris McCord 7209a3121c Add dropdown component 2021-11-22 11:21:11 -05:00
Chris McCord 8ee6b39ad5 Show connection status flash 2021-11-22 09:24:41 -05:00
Chris McCord 07d1dbf744 Fixup flash hiding 2021-11-19 09:55:26 -05:00
Chris McCord 6622f791e0 Use keydown event to detect keyboard based clicks
Relying on e.detail is not supported on all OS/browsers
2021-11-18 22:09:01 -05:00
Chris McCord 7d8e1f2ec6 Reset focus on escape 2021-11-18 16:17:47 -05:00
Chris McCord a643ca9fe5 Wrap focus 2021-11-18 16:01:29 -05:00
Chris McCord 1dc43ac366 Fix focus and keyboard nav
Only enable keyboard nav and focus if button is
triggered by keyboard event
2021-11-18 15:21:07 -05:00
Chris McCord 30b46e95e5 Add aria menu hook and use in sidebar 2021-11-18 09:55:09 -05:00
Chris McCord 364b0659e1 Deploy and presence stub 2021-11-16 11:58:28 -05:00
Chris McCord c45510cb6e Add profiles 2021-11-11 22:42:10 -05:00
Chris McCord 64c68d7b61 remove redudant order_by 2021-11-10 16:07:10 -05:00
Chris McCord 7708779b9f Auto advance to next song via client 2021-11-10 14:29:53 -05:00
Chris McCord 635a2c9d21 Make sidebar live and add enhanced flash 2021-11-10 13:23:02 -05:00
Chris McCord f482d5143a Update flash 2021-11-10 11:56:01 -05:00
Chris McCord fdd37c5da8 Use GH LV and js 2021-11-10 10:35:49 -05:00
Chris McCord b3033d0a94 Only show enable audio modal if not allowed 2021-11-08 14:52:45 -05:00
Chris McCord 17db535839 Move audio enabling entirely to client 2021-11-08 14:32:40 -05:00
Chris McCord 6358b0bb3b Fix changeset handling by recycling 2021-11-08 13:46:23 -05:00
Chris McCord 5f593dfaf2 Lock files behind temporary token 2021-11-05 23:02:31 -04:00