The official web app for lemmy.
Go to file
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
.github Removing alectrocute and jsit from codeowners. (#2391) 2024-03-13 17:19:07 +00:00
.husky Move to pnpm (#2345) 2024-01-28 22:09:08 -05:00
lemmy-translations@b0dab329ce Block urls (#2409) 2024-04-11 08:56:56 -04:00
src Use mixins and decorators for scroll restoration and tippy cleanup (#2415) 2024-04-11 13:18:07 -04:00
.babelrc Use mixins and decorators for scroll restoration and tippy cleanup (#2415) 2024-04-11 13:18:07 -04:00
.dockerignore Somewhat working dockerfile, without the networking. 2020-09-09 18:56:02 -05:00
.eslintignore Lazy loading less common languages for syntax highlighting (#2388) 2024-03-14 08:31:07 -04:00
.eslintrc.json Use mixins and decorators for scroll restoration and tippy cleanup (#2415) 2024-04-11 13:18:07 -04:00
.gitignore Revert "Ignore autogenerated css files from being tracked in the repo (#2256)" (#2259) 2023-11-30 05:28:14 -05:00
.gitmodules Test submodules (#6) 2020-09-10 15:22:21 -04:00
.prettierignore Block urls (#2409) 2024-04-11 08:56:56 -04:00
.prettierrc.json Adding Community Language fixes. #783 (#868) 2022-12-19 10:57:29 -05:00
.woodpecker.yml Adding alt_text and custom_thumbnail to post form. (#2404) 2024-04-04 19:59:13 -04:00
accessibility_tests.sh use set -e in all bash scripts 2021-04-21 13:57:42 +02:00
cliff.toml Adding git-cliff to help generate changelogs. (#2386) 2024-03-08 12:14:05 -05:00
CONTRIBUTING.md Remove docs translations from links (#1441) 2023-06-21 10:41:08 -04:00
deploy.sh Move to pnpm (#2345) 2024-01-28 22:09:08 -05:00
dev.dockerfile Changing security.txt to use github security advisories page. (#2334) 2024-02-16 10:17:15 -05:00
Dockerfile Changing security.txt to use github security advisories page. (#2334) 2024-02-16 10:17:15 -05:00
generate_translations.js Update translation submodule (#2023) 2023-08-04 16:24:13 -04:00
LICENSE Adding prettier 2020-08-23 00:04:58 -04:00
package.json 0.19.4-beta.3 2024-04-10 11:02:20 -04:00
pnpm-lock.yaml Adding alt_text and custom_thumbnail to post form. (#2404) 2024-04-04 19:59:13 -04:00
README.md Use http client (#1081) 2023-06-14 08:20:40 -04:00
test_deploy.sh use set -e in all bash scripts 2021-04-21 13:57:42 +02:00
tsconfig.json Use mixins and decorators for scroll restoration and tippy cleanup (#2415) 2024-04-11 13:18:07 -04:00
update_translations.sh Fixing follow from subscribe page. Fixes #2215 (#2229) 2023-11-22 22:44:42 +00:00
webpack.config.js Lazy loading less common languages for syntax highlighting (#2388) 2024-03-14 08:31:07 -04:00

Lemmy-UI

The official web app for Lemmy, written in inferno.

Based off of MrFoxPro's inferno-isomorphic-template.

Configuration

The following environment variables can be used to configure lemmy-ui:

ENV_VAR type default description
LEMMY_UI_HOST string 0.0.0.0:1234 The IP / port that the lemmy-ui isomorphic node server is hosted at.
LEMMY_UI_LEMMY_INTERNAL_HOST string 0.0.0.0:8536 The internal IP / port that lemmy is hosted at. Often lemmy:8536 if using docker.
LEMMY_UI_LEMMY_EXTERNAL_HOST string 0.0.0.0:8536 The external IP / port that lemmy is hosted at. Often DOMAIN.TLD.
LEMMY_UI_HTTPS bool false Whether to use https.
LEMMY_UI_EXTRA_THEMES_FOLDER string ./extra_themes A location for additional lemmy css themes.
LEMMY_UI_DEBUG bool false Loads the Eruda debugging utility.
LEMMY_UI_DISABLE_CSP bool false Disables CSP security headers
LEMMY_UI_CUSTOM_HTML_HEADER string Injects a custom script into <head>.