Commit graph

14 commits

Author SHA1 Message Date
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
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
SleeplessOne1917 638ab2c462
Com create post (#1431)
* Fix create post for community not having community selected by default

* Fix issue where fields would reset when creating post

* Run prettier and lint
2023-06-21 07:52:32 -04:00
Jay Sitter cc64a1fec9 feat: Drop dependency for tsconfig-paths-webpack-plugin 2023-06-20 17:40:14 -04:00
Alec Armbruster e4f9c31cfa
make suggested changes 2023-06-20 10:17:16 -04:00
SleeplessOne1917 ac2a83a7a6
Lint fix (#1035)
* User HTTP instead of HTTPS when fetching icon in docker internal network

* Add debug statement.

* Revert "Add debug statement."

This reverts commit 7fbb12a4bd.

* Revert "User HTTP instead of HTTPS when fetching icon in docker internal network"

This reverts commit 498de660ba.

* Always replace host with internal host

* Fix lint script

* Remove prettier from pre-commit

---------

Co-authored-by: Dessalines <dessalines@users.noreply.github.com>
2023-05-23 18:55:36 -04:00
Dessalines b64f47cfe9
Removing monads. Fixes #884 (#886)
* Removing monads. Fixes #884

* Fixing post fetching.

* Dont show not_logged_in error for navbar.

* Adding the lemmy-js-client RC.

* Fixing registration application mode
2023-01-04 11:56:24 -05:00
Dessalines 24548ccba8
Adding new site setup fields. (#840) 2022-11-09 14:53:07 -05:00
Dessalines d905c91e1b
Adding option types 2 (#689)
* Not working, because of wrong API types.

* Adding Rust-style Result and Option types.

- Fixes #646

* Updating to use new lemmy-js-client with Options.
2022-06-21 17:42:29 -04:00
Dessalines 4568e5a5ab Updating claims. 2021-03-19 10:22:47 -04:00
Mischa Spiegelmock 99c7966200
Make WS host configurable (#167)
* Make WS host configurable

* indent

* Type fixes

* Type lemmyConfig

* typo

* Move lemmy config to interfaces.ts
2021-02-12 12:54:35 -05:00
Dessalines 241ef72290 Somewhat working webpack. Sponsors and communities pages done. 2020-09-06 22:41:46 -05:00
Dessalines 2eee936026 Partly functioning fuse-box, but moving te webpack now. 2020-09-06 11:15:25 -05:00
Dessalines bf8a79e467 Initial commit. 2020-08-22 23:54:33 -04:00