* live comments: stable navigator for new outlined comments
* favicons: FaviconProvider, handle new comments favicon via navigator
* navigator keyboard shortcuts: arrow right/escape key
* enhance: responsive fixed positioning; cleanup
enhance:
- two types of padding for desktop and mobile via CSS
cleanup:
- use appropriate <aside> for navigator
- reorder CSS
* Comments Navigator Context, new comments dot UI, refs autosorting, auto-untrack children
- Navigator Context for item pages
UI/UX
- WIP: compact comments dot UI on navbars
- long press to clear tracked refs
- auto-untrack node's children on scroll
Logic
- auto-sort comment refs via createdAt
- remove outline on untrack if called by scroll
* stable navigator dot UI positioning
* cleanup: better naming, clear structure
* re-instate favicon state updates on navigator
* CSS visibility tweaks
* scroll to start position of ref
* fix undefined navigator on other comment calls
* add explanation for early favicon clear
---------
Co-authored-by: Keyan <34140557+huumn@users.noreply.github.com>
* live comments: stable navigator for new outlined comments
* navigator keyboard shortcuts: arrow right/escape key
* enhance: responsive fixed positioning; cleanup
enhance:
- two types of padding for desktop and mobile via CSS
cleanup:
- use appropriate <aside> for navigator
- reorder CSS
* Comments Navigator Context, new comments dot UI, refs autosorting, auto-untrack children
- Navigator Context for item pages
UI/UX
- WIP: compact comments dot UI on navbars
- long press to clear tracked refs
- auto-untrack node's children on scroll
Logic
- auto-sort comment refs via createdAt
- remove outline on untrack if called by scroll
* stable navigator dot UI positioning
* cleanup: better naming, clear structure
* CSS visibility tweaks
* scroll to start position of ref
* fix undefined navigator on other comment calls
* remove pulse animation
* carousel sort in deterministic order
* imgIndex 0 for ItemEmbed
* fix order for item-full
* fix indexing in ItemEmbed
* Revert "fix indexing in ItemEmbed"
This reverts commit f7863af30a1a02b189bfc79237606851c4da1abf.
* Revert "fix order for item-full"
This reverts commit 489e25ea82056bd83a818e581eb2bbfcf947e401.
* Revert "imgIndex 0 for ItemEmbed"
This reverts commit cd5fff1bae151e44db717f2a2173f673793bc6d0.
* carousel preserves ordering rendered on screen
* reorder carousel when sort changes
* fix cursor detected bugs
* register media to carousel before image load, confirm afterwards
* Remove unnecessary ref from dependencies
* Add missing dependencies
* Add missing dependencies
* Check if src was found in Carousel
---------
Co-authored-by: ekzyis <ek@stacker.news>
* include subs in grace status in suggestions
* make myself a contributor
* Refactor subSuggestions with Prisma.sql
---------
Co-authored-by: ekzyis <ek@stacker.news>
* Use SSR for wallet forms
* Fix back/forward navigation with useData hook
* Fix protocol fallback not working with shallow routing
* Fix wallet refetch
* Replace useEffect for default selection with smart link
* Remove unused useWalletQuery
* Move server2client wallet transform into single function
* Add comment about graphql-tag fragment warning
* Check if wallet not found
* Handle wallet is sometimes null on back or forward navigation
* enhance: FaviconProvider, keep track of new comment IDs to change favicon, remove new comment IDs per outline removal
* don't track oneself comments
* enhance: auto-show new comments, idempotency by ignoring already injected comments, preserveScroll utility
* fadeIn animation on comment injection; cleanup: remove unused counts and thread handling; non-critical fix: always give rootLastCommentAt a value
* reliably preserve scroll position by tracking a reference found at the center of the viewport; cleanup: add more comments, add cleanup function
* mitigate fractional scrolling subtle layout shifts by rounding the new reference element position
* enhanced outlining system, favicon context keeps track of new comments presence
- de-outlining now happens only for outlined comments
- enhanced outlining: add outline only if isNewComment
- de-outlining will remove the new comments favicon
- on unmount remove the new comments favicon
* remove the new comments favicon on new comments injection
* track only deduplicated new comments
* fix typo
* clearer unsetOutline conditions, fix typo in live comments hook
* backport: remove the injectedComment class from injected comments after animation ends
* set the new comments favicon on any new outlined comment
* enhance: directly inject new comments; cleanup: dismantle ShowNewComments, remove newComments field
* tweaks: slower injection animation, clear favicon on Comment section unmount
* change nDirectComments bug strategy to avoiding updates on comment edit
* cleanup: better naming, re-instate injected comments outline
* injection: major cache utilities refactor, don't preserve scroll if no comments have been injected
- don't preserve scroll if after deduplication we don't inject any comments
- use manual read/write cache updates to control the flow
-- allows to check if we are really injecting or not
- reduce polling to 5 seconds instead of 10
- light cleanup
-- removed update cache functions
-- added 'injected' to typeDefs (gql consistency)
* cleanup: detailed comments, refactor, remove clutter
Refactor:
+ clearer variables
+ depth calculation utility function
+ use destructured Apollo cache
+ extract item object from item query
+ skip ignored comment instead of ending the loop
CSS:
+ from-to fadeIn animation keyframes
- floatingComments unused class
Favicon:
+ provider exported by default
* fix wrong merge
* split: remove favicon context
* split: remove favicon pngs
* regression: revert to updateQuery for multiple comment fragments handling
* reverse multiple reads for deduplication on comment injection
* fix regression on apollo manipulations via fn; cleanup: remove wrong deps from outlining
* Remove unused parameter
* Mark uploads as paid on territory create and update
* Refactor upload expiry check
* Check upload expiry on territory create
* Include upload fees in territory create/update cost
* Also check for expired uploads on edits
* Find deleted uploads with one query