Commit graph

1505 commits

Author SHA1 Message Date
SleeplessOne1917 4293c5a6c3
Fix auto download bug (#2552) 2024-06-17 19:50:17 -04:00
SleeplessOne1917 2f91700074
Make uploads only viewable to oneself (#2540) 2024-06-14 21:16:17 -04:00
matc-pub 661a8000cd
Handle CrossPostParams when mounting CreatePost (#2521) 2024-06-08 11:45:56 -04:00
matc-pub 761cd7aa4e
Keep CreatePost mounted when updating URL, fixes focus resets. (#2520) 2024-06-07 15:51:35 -04:00
matc-pub 300ed5fe03
Move fetchPageTitle into componentWillMount and only call client side. (#2519) 2024-06-07 14:54:53 -04:00
SleeplessOne1917 c9b7f66925
Fix copy title from metadata (#2518)
* Fix copy title bug

* Refactor

* Update translations

* Fix it for real this time

* Remove query params when field is empty
2024-06-07 13:21:04 -04:00
SleeplessOne1917 7003b564a3
Create post query params (#2515)
* Allow create post page form inputs to be populated from query params

* Fix issue with cross post params.

---------

Co-authored-by: Dessalines <tyhou13@gmx.com>
2024-06-06 22:56:17 -04:00
Dessalines 18c3f3975f
Fix 502 error on initial settings page load. (#2498)
- Needed to wrap the fetchThemeList in an isBrowser check.
- Fixes #2497
2024-06-03 22:31:54 +00:00
matc-pub 02fcfa26ee
Fix some submit button issues (#2487)
* Prevent PostForm submit button spam

* Keep CreatePost PostForm visible during submission

* Keep PostListing PostForm visible during submission

* Keep PostForm navigation warning enabled during submission

* Remove `finished` from MarkdownTextAreaProps

* Handle CommentForm submission failures

* Keep CommentForm navigation warning enabled during submission

* Handle PrivateMessageForm submission failures

* Bypass navigation warning for successful CreatePrivateMessage

* Fix absolute import, add eslint rule

* Cleaner handleCommentSubmit

---------

Co-authored-by: SleeplessOne1917 <28871516+SleeplessOne1917@users.noreply.github.com>
2024-06-02 11:46:32 -04:00
matc-pub b7fe70d8c1
Render more while reloading only some resources (#2480)
* AdminSettings remove unused currentTab state

* Fix amAdmin check in reports fetchInitialData

* Make CreatePost render earlier

* Include children of auth and anonymous guard in first render.

* Convert DidMount to WillMount where things don't depend on the DOM

`componentDidMount` is called after the first render. A lot of
components used it to call `setState`, which causes a second render.

* Keep route components mounted during same route navigation

Not sure why this wasn't the case without this change. The only
difference here is that the same array is reused in every render.

* Disable mounted same route navigation by default

* Enable mounted same route navigation for some routes

* Render more while loading

* Prettier markup

* Make Post use query params and reload comments independently

* Fix issue with <Prompt /> for forms that remain mounted after "leaving".

* Make Search not rerender the results on every keystroke

* Discard old requests

These used to (mostly) arrive at the old already unmounted components.
Now they would render briefly until the latest response is received.

* Move non breaking space to modlog

* Make show optional for modals
2024-05-22 15:46:13 -04:00
SleeplessOne1917 1f7c8dd1b0
Fix video thumbnail override issue (#2474)
* Fix video thumbnail override issue

* Cleanup

* Make thumbnails always show up, even on mobile

---------

Co-authored-by: Dessalines <tyhou13@gmx.com>
2024-05-21 14:25:21 -04:00
SleeplessOne1917 139514cac8
Use non-deprecated QR library (#2475) 2024-05-21 14:20:32 -04:00
renovate[bot] 7875a793b3
Update dependency @types/markdown-it to v14 (#2470)
* Update dependency @types/markdown-it to v14

* Fixing markdown import.

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Dessalines <tyhou13@gmx.com>
2024-05-15 13:46:26 -04:00
SleeplessOne1917 da5a740fd4
Fix Language not allowed infinite loading on failed post (#2457)
* Fix language not allowed bug

* Add translations
2024-05-14 22:35:54 -04:00
SleeplessOne1917 b793697f68
Refresh admin settings on submit (#2456) 2024-05-14 09:48:59 -04:00
SleeplessOne1917 d705f3685f
Fix leap year issue (#2453)
* Fix leap year issue

* Show same cake day date independent of timezone (#2455)

* Show same cake day date independent of timezone

* Remove commented out assertions

---------

Co-authored-by: matc-pub <161147791+matc-pub@users.noreply.github.com>
2024-05-13 22:45:33 -04:00
SleeplessOne1917 17097ecd34
Fix bug where newly created communities cannot be edited until refresh (#2451)
* Fix bug where newly created communities cannot be edited until refresh

* Fix bug with slightly less crappy kludge than before
2024-05-10 11:04:31 -04:00
SleeplessOne1917 b0a711a4ac
Fix bug where UI breaks trying to send a DM (#2452) 2024-05-10 11:01:34 -04:00
SleeplessOne1917 ef72c75000
Prevent onBlur from appending URL scheme to URLs (#2449) 2024-05-07 13:21:16 -04:00
Dessalines 5b5f684e98
Hiding RSS button for saved view on profile page. Fixes #2438 (#2440) 2024-04-25 22:39:07 +00:00
SleeplessOne1917 6fdec8c06e
Prevent videos and embeds from showing if adult consent not accepted (#2436) 2024-04-23 23:02:14 -04:00
SleeplessOne1917 d89dc07e71
Mod action history (#2437)
* Add action for viewing moderation history

* Add translations

* Remove unnecessary function

* Update packageManager

* Package manager
2024-04-23 22:34:52 -04:00
Dessalines b2a3f29fe2
Adding creator_banned_from_community to view votes modal. (#2435)
* Adding creator_banned_from_community to view votes modal.

* Adding margin.

* Updating pnpm to 9.0.5
2024-04-23 21:58:52 -04:00
SleeplessOne1917 c1b8946875
Add fallback image for broken images (#2434)
Co-authored-by: Dessalines <dessalines@users.noreply.github.com>
2024-04-22 11:54:04 -04:00
matc-pub f01701f5ec
Content warning fixups (#2432)
* Content warning fixups

- Require consent of logged in existing users.
- Prevent link clicks in blurred areas.
- Enable tippy again.
- Prevent stacking of countdowns for Back button.
- Fix auto expand blocking for images.

* Hide content warning for logged in users
2024-04-22 11:05:54 -04:00
Dessalines d8a92812d8
Adding vote display modes (#2426)
* Adding vote display modes

* Only show downvotes setting if site has downvotes enabled.
2024-04-18 20:20:37 -04:00
SleeplessOne1917 643c1f6f01
Make confirm popup for adult consent (#2419)
* Make confirm popup for adult consent

* Fix import

* Fix blur and adjust user settings

* Make confirmation popup more stylish

* Add setting to site settings form

* Fix modal bug

* Put adult consent logic all in one place

* Make modal use markdown

* Fix consent modal showing up for currently logged in admin

* Add go-back redirect countdown

* Center modal title

* Handle enable_nsfw correctly

* Blur background of modal to hide spicy things

* Add translations
2024-04-18 19:54:16 -04:00
TechVest c1fbba2768
chore: fix some comments (#2427)
Signed-off-by: TechVest <techdashen@qq.com>
Co-authored-by: SleeplessOne1917 <28871516+SleeplessOne1917@users.noreply.github.com>
2024-04-17 09:19:21 -04:00
Dessalines 9dcaff4301
Adding image upload views for admins and profiles. (#2424)
* Adding image upload views for admins and profiles.

* Upgraded lemmy-js-client dep.

* Removing this.

* Upgrade to pnpm v9.0.1

---------

Co-authored-by: SleeplessOne1917 <28871516+SleeplessOne1917@users.noreply.github.com>
2024-04-17 08:37:58 -04:00
Dessalines accf1b2d72
Use muted display names, and always show instance for non-local. #1975 #2064 (#2425)
* Use muted display names. #1975 #2064

* Removing pointless undefined equality.
2024-04-16 13:56:47 +00:00
matc-pub fdeb9244db
Only conditionally render most of content action dropdown and workaround for tippy warning (#2422)
* Avoid destroyed tippy warning

Tippy doesn't remove its onDocumentPress listener when destroyed.
Instead the listener removes itself after calling hide for hideOnClick.

It doesn't look like there is a way to reliable work around this.

This skips the warning for the first hide call on a destroyed tippy
instance.

Cleanup is only performed after at least ten tippy instances have been
created.

* Hide tooltips for elements that are no longer connected to the document

* Only render action modals after first show

* Only render action dropdown after first show

* Modals fix for quick unmount

Modals use `await import("bootstrap/js/dist/modal")` when being mounted.
This means its possible that the component unmounts before the promise
resolves.

* bind() dropdown toggle click handler

* Modal mixin
2024-04-13 11:15:29 -04:00
SleeplessOne1917 6e33395572
Correct mistake from block urls PR (#2420) 2024-04-12 09:45:13 -04:00
SleeplessOne1917 c1722a0b6b
Add hide post UI (#2408)
* Add hide post UI

* Add toggle to home and community feeds to show hidden posts

* Add i18n (and add lockfile to prettier ignore)

* Change show hidden style

* Tippy
2024-04-12 09:43:09 -04:00
matc-pub e48590b9d6
Use mixins and decorators for scroll restoration and tippy cleanup (#2415)
* Enable @babel/plugin-proposal-decorators

Dependency already exists

* Use tippy.js delegate addon, cleanup tippy instances from a mixin.

The delegate addon creates tippy instances from mouse and touch events
with a matching `event.target`. This is initially significantly cheaper
than creating all instances at once. The addon keeps all created tippy
instances alive until it is destroyed itself.

`tippyMixin` destroys the addon instance after every render, as long as
all instances are hidden. This drops some tippy instances that may have
to be recreated later (e.g when the mouse moves over the trigger again),
but is otherwise fairly cheap (creates one tippy instance).

* Restore scroll positions when resource loading settles.

The history module generates a random string (`location.key`) for every
browser history entry. The names for saved positions include this key.
The position is saved before a route component unmounts or before the
`location.key` changes.

The `scrollMixin` tires to restore the scroll position after every
change of `location.key`. It only does so after the first render for
which the route components `loadingSettled()` returns true.

Things like `scrollToComments` should only scroll when `history.action`
is not "POP".

* Drop individual scrollTo calls

* Scroll to comments without reloading post

---------

Co-authored-by: SleeplessOne1917 <28871516+SleeplessOne1917@users.noreply.github.com>
2024-04-11 13:18:07 -04:00
snan b983071e79
Fix parent comment linking when not showing context (#2417)
The same code is reused for the "show context" button as for the "link
to self" button. I'm not sure that's such a good idea in the long run.

There was a const `parentCommentId` that was always set even when not
having the `showContext` prop, causing the bug #2401.
2024-04-11 08:58:23 -04:00
SleeplessOne1917 ddd4a98fd7
Block urls (#2409)
* Add markup

* Make textarea reactive

* Fix bug mixing up urls and instances

* Tweak url enforcement logic

* Extract url list textarea to component

* Add translations

* Add pnpm lock to prettier ignore
2024-04-11 08:56:56 -04:00
matc-pub 0dbfe050cf
Fix deselecting community/creator filter for search form (#2416) 2024-04-11 10:43:34 +00:00
Richard bbe9c610be
fix: add a default margin bottom to ul and ol in a comment field (#2414)
Co-authored-by: SleeplessOne1917 <28871516+SleeplessOne1917@users.noreply.github.com>
2024-04-10 08:46:49 -04:00
Alexander Harding 7c891a42b5
Fix incorrectly escaped user export JSON (#2412)
Resolves https://github.com/LemmyNet/lemmy/issues/4600
2024-04-10 08:15:43 -04:00
Dessalines 9aa1e06ae3
Adding alt_text and custom_thumbnail to post form. (#2404)
* Adding alt_text and custom_thumbnail to post form.

* Adding htmlFor, and only show alt_text if its an image post.

* Only show custom thumbnail url field when its not an image post.
2024-04-04 19:59:13 -04:00
SleeplessOne1917 23fb711efa
Add matrix account link to create private message form (#2399) 2024-03-28 11:12:06 -04:00
Rodrigo 72553e429b
Adds a loading skeleton to posts, comments and trending communities (#2311)
* creates the initial loading skeleton for the home page

* initial setup for the trending communities loading skeleton

* adds posts loading skeleton to the community page

* finishes the creation of all loading skeletons for large devices

* finishes loading skeleton for smaller screens

* removes unecessary code for the loading skeleton

* [loading skeleton] removes unecessary mock code

* [loading skeleton] removes custom css classes and adds more bootstrap css classes on the skeleton loading

* replaces custom styles with bootstrap classes

* rendes only one component for desktop and mobile screens

Co-authored-by: SleeplessOne1917 <28871516+SleeplessOne1917@users.noreply.github.com>

* fixes lint's indentation problems

* transforms span tags into self-closing tags

* removes every inline style from the loading-skeleton.tsx file

---------

Co-authored-by: SleeplessOne1917 <28871516+SleeplessOne1917@users.noreply.github.com>
2024-03-27 16:25:49 -04:00
SleeplessOne1917 ad07fc4fed
Show user email in registration application (#2400)
Co-authored-by: Dessalines <dessalines@users.noreply.github.com>
2024-03-27 10:17:44 -04:00
matc-pub 70e382b3d9
Rework query parsing (#2396)
* Pass parsed query params as props to components

* Pass parsed query params to fetchInitialData

* Pass router Match to fetchInitialData

* Cast individual routes to their concrete types

Adds an IRoutePropsWithFetch definition for routes with getQueryParams
or fetchInitialData to cause compiler errors when the types no longer
match.

* Don't double decode query parameters.

Problem: A search for "%ab" produces a url with "%25ab". Refreshing
the page results in URLSearchParams turning "%25ab" back into "%ab".
decodeURIComponent() then complains about "%ab" being malformed.

This removes decodeURIComponent() calls for query parameters and
composes all query strings with getQueryString(), which now uses
URLSearchParams. Query parsing already goes through getQueryParams()
which also uses URLSearchParams.

* Fix for PictrsImage when src also has query params

* Small getQueryParams cleanup
2024-03-27 09:25:59 -04:00
SleeplessOne1917 579aea40d0
Notify users that they are banned from a community (#2397)
* Add banned blurb to community sidebar

* Hide interactable parts of posts and comments when banned from community

* Add translation

* Fix some typescript errors

* Fix typescript errors

* PR feedback
2024-03-26 19:03:02 -04:00
SleeplessOne1917 610789242b
Fix registration pending translation bug (#2393) 2024-03-22 18:29:22 -04:00
SleeplessOne1917 a860bdd700
Community visibility setting (#2376)
* Update deps

* Add community visibility to community form for editing and creating

* Add translations

* Make visibility display

* Add translations

---------

Co-authored-by: SleeplessOne1917 <insomnia-void@protonmail.com>
Co-authored-by: Dessalines <dessalines@users.noreply.github.com>
2024-03-14 12:09:11 -04:00
matc-pub 9a5f9dd18a
Do most of the theme handling from the Theme component (#2390)
* Set data-bs-theme attribute from Theme component

* Handle temporary theme changes in Theme component

* Fetch theme list on AdminSettings component mount

* Include CodeTheme in Theme component

* Improve handling of browser-compact theme

---------

Co-authored-by: SleeplessOne1917 <28871516+SleeplessOne1917@users.noreply.github.com>
2024-03-14 08:33:49 -04:00
matc-pub 201e5fcd53
Lazy loading less common languages for syntax highlighting (#2388)
* Use fewer syntax highlighter languages.

Reduces client.js size by about 250kB (800kB uncompressed)

Common languages:
bash, c, cpp, csharp, css, diff, go, graphql, ini, java, javascript,
json, kotlin, less, lua, makefile, markdown, objectivec, perl,
php-template, php, plaintext, python-repl, python, r, ruby, rust, scss,
shell, sql, swift, typescript, vbnet, wasm, xml, yaml

Additionally enabled languages:
dockerfile, pgsql

* Configurable syntax highlighter languages

Allows to individually enable languages.

* Lazy load syntax highlighter languages

Allows to enable additional languages that will not be autodetected.

* Include highlight.js in dynamic import check
2024-03-14 08:31:07 -04:00
matc-pub e832cd2729
Lazy load translations and date-fns, server side support for "Browser Default" language (#2380)
* Lazy load i18n translations.

* Lazy load date-fns

* Fix inconsistent DOMContentLoaded event.

Only when no translations and date-fns have to be dynamically loaded
(e.g. for en-US) the NavBar `componentDidMount` is early enough to
listen for "DOMContentLoaded".

Removes one redundant `requestNotificationPermission()` call.

* Rename interface language code "pt_BR" to "pt-BR".

Browsers ask for "pt-BR", but the "interface_language" saved in the
settings dialog asks for "pt_BR". This change will make the settings
dialog ask for "pt-BR" instead of "pt_BR". For users that already (or
still) have "pt_BR" configured, "pt-BR" will be used, but the settings
dialog will present it as unspecified.

* Use Accept-Language request header

* Prefetch translation and date-fns

---------

Co-authored-by: SleeplessOne1917 <28871516+SleeplessOne1917@users.noreply.github.com>
2024-03-13 16:39:45 -04:00