Commit graph

348 commits

Author SHA1 Message Date
Tilman Vatteroth
6760db9e18 fix(frontend): use swc minify to prevent terser error
Terser can't handle the static blocks our code produce. SWC can handle this, but causes other problems caused by the global-error files. It's not a nice solution but the benefit is bigger than the risk.

Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-10-23 22:01:18 +02:00
Tilman Vatteroth
fcd31931f5 fix(frontend): remove light text class from error page
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-10-23 21:39:40 +02:00
Tilman Vatteroth
61362f9175 fix(frontend): migrate type changes
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-10-20 13:35:54 +00:00
Tilman Vatteroth
386d5700cf fix(frontend): fix revision-viewer type
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-10-19 20:26:14 +00:00
Tilman Vatteroth
982783c8cf fix(common): fix fetch mock in test
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-10-19 20:26:14 +00:00
Erik Michelson
909f45bc3f enhancement(notifications): remove from state after dismissal
This commit changes the implementation from an array to a Map,
as that makes accessing a notification for dismissal or removal
more performant.

Signed-off-by: Erik Michelson <github@erik.michelson.eu>
2023-10-15 21:08:26 +02:00
Erik Michelson
f6780c44c4 feat(sidebar): distinguish guest users visually
This change adds a little guest icon next to the active indicator
showing that a user is not logged-in.
Furthermore, the active indicator now has a tooltip explaining it.

Signed-off-by: Erik Michelson <github@erik.michelson.eu>
2023-10-14 02:00:59 +02:00
Erik Michelson
685488c7a2 enhancement(autocomplete): add generic code suggestion entry
Signed-off-by: Erik Michelson <github@erik.michelson.eu>
2023-10-13 18:12:53 +02:00
Erik Michelson
5ccc9059f0 tests(permissions): add cypress tests for permission alert icon
Signed-off-by: Erik Michelson <github@erik.michelson.eu>
2023-10-13 18:07:44 +02:00
Erik Michelson
6d69b294cb refactor(permissions): retrieve special permissions from hook
Signed-off-by: Erik Michelson <github@erik.michelson.eu>
2023-10-13 18:07:44 +02:00
Erik Michelson
dfcf662a85 enhancement(permissions): show alert when permission is overridden by another
Signed-off-by: Erik Michelson <github@erik.michelson.eu>
2023-10-13 18:07:44 +02:00
Tilman Vatteroth
ce286cc092 fix: catch access forbidden errors for local storage access
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-10-09 09:11:11 +02:00
Tilman Vatteroth
be3ca5cdeb fix: trigger iframe load fallback outside of test mode
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-10-09 09:11:11 +02:00
Tilman Vatteroth
a2b291294e fix: usage of internal api
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-10-08 21:59:39 +02:00
Tilman Vatteroth
f43c9fd2b1 feat: add internal api url
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-10-08 21:12:51 +02:00
Philip Molares
db2d8614a6 fix: add correct link to ForkAwesomeHtmlTagAppExtension
Signed-off-by: Philip Molares <philip.molares@udo.edu>
2023-10-08 21:12:15 +02:00
Tilman Vatteroth
ff7a7a220d fix: change icon and name of last saved sidebar entry
Signed-off-by: Yannick Bungers <git@innay.de>
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-10-08 18:08:24 +02:00
Yannick Bungers
8879b51344 Adding issues for TODOs
Signed-off-by: Yannick Bungers <git@innay.de>
2023-10-08 16:00:42 +02:00
Yannick Bungers
040d473b62 Remove fixed TODOs
Signed-off-by: Yannick Bungers <git@innay.de>
2023-10-08 16:00:42 +02:00
Yannick Bungers
04d16a1141 Update issue link
Signed-off-by: Yannick Bungers <git@innay.de>
2023-10-08 16:00:42 +02:00
Tilman Vatteroth
386cf469fd fix(editor): fix positions of tag migration lint
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-10-08 15:07:19 +02:00
Erik Michelson
18e1ab340c fix(history): history toolbar wraps instead of making buttons ugly
Signed-off-by: Erik Michelson <github@erik.michelson.eu>
2023-10-08 13:53:19 +02:00
Erik Michelson
75838ef426 enhancement(appbar): remove unnecessary history button from app bar
Signed-off-by: Erik Michelson <github@erik.michelson.eu>
2023-10-08 13:53:19 +02:00
Erik Michelson
7758cd588c fix(editor): remove toolbar separators and fix margin
Signed-off-by: Erik Michelson <github@erik.michelson.eu>
2023-10-08 13:53:19 +02:00
Erik Michelson
e53ad15bfe enhancement(sidebar): hide delete note button when not being the owner
Signed-off-by: Erik Michelson <github@erik.michelson.eu>
2023-10-08 13:53:19 +02:00
Tilman Vatteroth
f786fe538b fix(editor): fix emoji picker data path
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-10-08 13:47:00 +02:00
Tilman Vatteroth
72a211b58f Revert "fix(codemirror): remove defect language highlighting"
This reverts commit 6e36ab56b7.

Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-10-08 13:33:14 +02:00
Erik Michelson
6e36ab56b7 fix(codemirror): remove defect language highlighting
Signed-off-by: Erik Michelson <github@erik.michelson.eu>
2023-10-08 12:58:59 +02:00
Philip Molares
9a81e3ae18 refactor: remove name tooltip from user avatar
Signed-off-by: Philip Molares <philip.molares@udo.edu>
2023-10-08 12:58:46 +02:00
Erik Michelson
792f4b7dbc fix: show guest access button only with relevant config being set
Signed-off-by: Erik Michelson <github@erik.michelson.eu>
2023-10-07 18:25:05 +02:00
Erik Michelson
cd68794157 fix: redirect to history page after register to avoid problems
With the previous redirect to the root page, there were some problems when having no other routes in the route history.

Signed-off-by: Erik Michelson <github@erik.michelson.eu>
2023-10-07 18:04:24 +02:00
Philip Molares
f47f6c3658 fix: clicking the logo let's the user get back to the note
Signed-off-by: Philip Molares <philip.molares@udo.edu>
2023-10-07 18:00:20 +02:00
Philip Molares
2693ebbb82 feat(editor): show notification if user is not allowed to edit note
Co-authored-by: Erik Michelson <github@erik.michelson.eu>
Signed-off-by: Philip Molares <philip.molares@udo.edu>
Signed-off-by: Erik Michelson <github@erik.michelson.eu>
2023-10-07 17:49:55 +02:00
Erik Michelson
1fefabb3b2 fix: use correct import for identicon
Signed-off-by: Erik Michelson <github@erik.michelson.eu>
2023-10-07 16:17:55 +02:00
Philip Molares
5435dd54ee fix(sidebar): indicate that some feature are not yet supported
Signed-off-by: Philip Molares <philip.molares@udo.edu>
2023-10-07 15:55:23 +02:00
Erik Michelson
a8b3b117dc feature: add identicon generation to users without photo
Signed-off-by: Erik Michelson <github@erik.michelson.eu>
2023-10-07 15:51:32 +02:00
Philip Molares
c4dade2fc5 fix: height and width of history table button
Signed-off-by: Philip Molares <philip.molares@udo.edu>
2023-10-07 14:44:04 +02:00
Philip Molares
d43da06ec1 refactor: remove dropbox, facebook & twitter login
Signed-off-by: Philip Molares <philip.molares@udo.edu>
2023-10-07 13:28:37 +02:00
Erik Michelson
29bf32b76f enhancement: use isLoggedIn hook
Signed-off-by: Erik Michelson <github@erik.michelson.eu>
2023-10-07 12:34:34 +02:00
Erik Michelson
3dfad0cea5 enhancement: use isLoggedIn hook
Signed-off-by: Erik Michelson <github@erik.michelson.eu>
2023-10-07 12:34:34 +02:00
Erik Michelson
8e10fb6804 fix: show new note button only dependent on guest access
Signed-off-by: Erik Michelson <github@erik.michelson.eu>
2023-10-07 12:34:34 +02:00
Tilman Vatteroth
5a1edea00a fix(iframe-loader): add fallback for iframe loading
Some browsers (mostly cypress's chrome) doesn't execute
the onLoad callback automatically on the iframe.
The fallback is a timer that triggers this after a timeout of 500ms.

Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-10-02 09:13:30 +02:00
Tilman Vatteroth
62abd9cbe0 fix: don't double load iframe content
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-10-02 09:13:30 +02:00
Tilman Vatteroth
d5455f7c33 fix: include uuid in iframe communicator logger
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-10-02 09:13:30 +02:00
Erik Michelson
1199db4692 enhancement(login): add redirectBackTo parameter to login button
Signed-off-by: Erik Michelson <github@erik.michelson.eu>
2023-09-25 00:13:43 +02:00
Erik Michelson
1207ce7690 fix(frontend-config): use guest access level instead of allowAnonymous
Signed-off-by: Erik Michelson <github@erik.michelson.eu>
2023-09-24 23:19:12 +02:00
Tilman Vatteroth
56643ffd85 feat: merge login, register and intro page
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-09-24 22:12:39 +02:00
Tilman Vatteroth
a1a09f07d0 fix(frontend): fix type mismatch in revision-viewer.tsx
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-09-24 09:00:37 +00:00
Tilman Vatteroth
b72411a021 fix(frontend): type of revision-viewer.tsx
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-09-22 08:35:17 +00:00
Tilman Vatteroth
11a47b6087 Revert "fix(frontend): replace expected-origin-boundary with middleware"
This reverts commit 982bc4ba

Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-09-10 21:38:53 +02:00
Tilman Vatteroth
38b5300ea4 fix(frontend): show reconnect alert only if note has been loaded
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-09-09 12:11:20 +02:00
Tilman Vatteroth
6698450461 fix(frontend): make note details in redux optional
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-09-09 09:40:06 +02:00
Tilman Vatteroth
8a745f3f32 fix: improve deep partial type used in tests
The deep partial type from redux had the problem that it could only be applied to records. This caused problems with primitive types and arrays.

Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-09-07 21:25:56 +02:00
Erik Michelson
ad80b444ff refactor(tests): add test utils for mocking common things
Signed-off-by: Erik Michelson <github@erik.michelson.eu>
2023-09-05 13:05:27 +02:00
Tilman Vatteroth
b3fb1bbf30 fix: extract app bar into layout slot
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-09-05 12:41:26 +02:00
Tilman Vatteroth
7f5fd18e38 Revert "fix: replace class BaseUrlFromEnvExtractor"
This reverts commit 59bca4a81f.

Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-09-04 09:14:29 +02:00
Tilman Vatteroth
982bc4ba59 fix(frontend): replace expected-origin-boundary with middleware
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-09-03 22:00:34 +02:00
Tilman Vatteroth
94cf510736 feat(frontend): colorize terminal output of logger
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-09-03 22:00:34 +02:00
Tilman Vatteroth
59bca4a81f fix: replace class BaseUrlFromEnvExtractor
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-09-03 22:00:34 +02:00
Tilman Vatteroth
8602645bea feat: migrate frontend app to nextjs app router
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-09-03 22:00:34 +02:00
Tilman Vatteroth
5b5dabc84e fix: increase type safety of local storage settings
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-09-03 22:00:34 +02:00
Tilman Vatteroth
46e1b7471d refactor: rename isMac to isAppleDevice
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-09-03 22:00:34 +02:00
Tilman Vatteroth
4cb332622a feat(frontend): add build script
The build script prepares the package for a production build, builds the app, places every all needed files in a dist directory and cleans it.

Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-08-27 12:42:40 +02:00
Tilman Vatteroth
7b3c217470 fix(frontend): remove unused handler
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-08-27 12:42:40 +02:00
Tilman Vatteroth
9e44f2b26c fix: replace exclamation mark in application error alert with SVG to ensure sizing and position
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-08-20 20:08:27 +02:00
Tilman Vatteroth
8bc167239c refactor: use application error alert in flowchart
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-08-13 20:56:38 +02:00
Tilman Vatteroth
cdd368bc81 refactor: use application error alert in abc-frame
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-08-13 20:56:38 +02:00
Tilman Vatteroth
cb38d5dedf refactor: use application error alert in vega-lite-chart
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-08-13 20:56:38 +02:00
Tilman Vatteroth
9cf450a622 refactor: use application error alert in mermaid-chart
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-08-13 20:56:38 +02:00
Tilman Vatteroth
2c4d688abd refactor: use application error alert in katex-frame
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-08-13 20:56:38 +02:00
Tilman Vatteroth
6f0adfd717 refactor: use application error alert in graphviz-frame
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-08-13 20:56:38 +02:00
Tilman Vatteroth
dccd58f0c1 fix: remove subpath support for HD_BASE_URL
With this commit we drop the subpath support which results in the constraint that HedgeDoc must always run on the root of a domain. This makes a lot of things in testing, rendering and security much easier.

Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-08-13 20:38:53 +02:00
Philip Molares
e3c7d0ae8a refactor: replace plantuml error message with a custom hedgedoc error alert
Signed-off-by: Philip Molares <philip.molares@udo.edu>
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-08-09 13:55:35 +02:00
Philip Molares
c6c972c56c fix(blockquote): remove extra color tag
Remove the extra color tag in a way that still makes us able to use the color tag in the blockquote

Signed-off-by: Philip Molares <philip.molares@udo.edu>
2023-08-06 19:06:29 +02:00
Tilman Vatteroth
cbfed96398 fix: code formatting in mermaid-chart.tsx
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-08-06 11:55:34 +00:00
Tilman Vatteroth
8e2d59ff3c fix(commons): replace microbundle with bash based compile script
The commons package ships wrong types because it is refering to the same files for the ESM and the CJS build.
See https://arethetypeswrong.github.io/?p=%40mrdrogdrog%2Foptional%401.1.0

This happens because microbundle can handle the generation of `.mjs` and `.cjs` from files itself but delegates the generation of types entirely to typescript by running it once. Microbundle uses the "type" field from the package.json to know if a `.js` file is meant to be mjs or cjs and generates the other type by using the specific file extension `.cjs` and `.mjs` (so if your package is a `type: module`, then `.js` file are interpreted as ECMAModule and if you have a commonjs file you need to name it `.cjs`).  But this causes a problem with typescript. If you use typescript with the newer module resolver then it expects the type declarations to be named exactly like the file you wanna import. So if you have a `.js` file it will try to look up types in a `.d.ts` file. If it is resolving a `.mjs` file it is looking for a `.d.mts` file.

This clashes with the types generated by microbundle because you can't use a `.mjs` file with a `.d.ts` file.

Running typescript multiple times can also be complicated.
When generating type declaration files, typescript takes a look at the source file extension. So a `.mts` file will generate a `.mjs` and a `.d.mts` file. A `.ts` will generate a `.js` and `.d.ts` file. It doesn't matter if you run microbundle on `.ts`, `.mts` or `.cjs` files, it will only generate the type declarations once.

How do you get the other type declaration? To solve this problem you either have to run typescript multiple times and manipulate the input or output data to have correct `.d.mts` / `.d.cts` files AND imports... or do what this PR changes.

It runs typescript multiple times but places the complied files in different directories. It then places a package.json in both directories which declares if `.js` is commonjs or ESM.
This way the resolver is happy because it can import `.js` files according to the package.json content and typescript is happy because it can find type declarations. And because package.json files are inheriting properties from other package.json files no necessary file is missing.

Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-07-30 14:56:29 +02:00
Avinash
a948493410 feat(frontend): delete revision
Signed-off-by: Avinash <avinash.kumar.cs92@gmail.com>
2023-07-24 20:05:10 +02:00
Tilman Vatteroth
34bf8f16b1 fix: format code
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-07-19 12:36:32 +02:00
Tilman Vatteroth
4d70ccafbc fix: code formatting
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-07-16 10:51:51 +02:00
Philip Molares
82f534f7b0 fix(frontend): use correct translations for privacy and term of use links
Signed-off-by: Philip Molares <philip.molares@udo.edu>
2023-07-09 12:30:51 +02:00
Philip Molares
7e05650888 fix(frontend): use correct translations for privacy and term of use links
Signed-off-by: Philip Molares <philip.molares@udo.edu>
2023-07-08 16:38:08 +02:00
Tilman Vatteroth
25ee20c15d refactor: rename ready function to match its intent
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-07-06 12:07:03 +02:00
Tilman Vatteroth
354700e973 perf: add performance marker to monitor the needed time for rendering
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-07-06 10:44:48 +02:00
Tilman Vatteroth
a303bb261f perf: use deferred value hook to increase performance
The useDeferredValue hook renders the state change in the background and only applies it if the current value is the newest one.

Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-07-06 10:44:48 +02:00
Tilman Vatteroth
30b374ee5d fix: better apple keyboard detection
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-07-02 17:54:23 +02:00
Erik Michelson
d10c6d3290 refactor: move help entries into new global app bar
Co-authored-by: Tilman Vatteroth <git@tilmanvatteroth.de>
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
Signed-off-by: Erik Michelson <github@erik.michelson.eu>
2023-07-02 17:54:23 +02:00
Erik Michelson
74b92f2bbb enhancement(icon): add title attribute for icons
Signed-off-by: Erik Michelson <github@erik.michelson.eu>
2023-07-02 17:54:23 +02:00
Erik Michelson
9030bbd454 refactor: move version info modal
Signed-off-by: Erik Michelson <github@erik.michelson.eu>
2023-07-02 17:54:23 +02:00
Tilman Vatteroth
ff004a5a63 refactor: extract shortcuts from help modal
Co-authored-by: Erik Michelson <github@erik.michelson.eu>
Signed-off-by: Erik Michelson <github@erik.michelson.eu>
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-07-02 17:54:23 +02:00
Erik Michelson
ae37bd36f9 refactor: move settings dialog to global dialogs
Signed-off-by: Erik Michelson <github@erik.michelson.eu>
2023-07-02 17:54:23 +02:00
Erik Michelson
5b64392a98 refactor: move motd modal
Signed-off-by: Erik Michelson <github@erik.michelson.eu>
2023-07-02 17:54:23 +02:00
Erik Michelson
fa819c290a refactor: move cheatsheet to global components
Signed-off-by: Erik Michelson <github@erik.michelson.eu>
2023-07-02 17:54:23 +02:00
Tilman Vatteroth
c94db0c1ff fix: flexsearch types
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-07-02 17:40:39 +02:00
Philip Molares
7a365acdb9 refactor(frontend): make terminology of cheatsheet more clear
Also add additional documentation to explain how cheatsheets work

Signed-off-by: Philip Molares <philip.molares@udo.edu>
2023-07-02 16:38:16 +02:00
Philip Molares
81927b88f2 feat(frontend): add search in cheatsheet view
Signed-off-by: Philip Molares <philip.molares@udo.edu>
2023-07-02 16:38:16 +02:00
Philip Molares
1624ff9c3b feat(frontend): add useDocumentSearch hook
Signed-off-by: Philip Molares <philip.molares@udo.edu>
2023-07-02 16:38:16 +02:00
Erik Michelson
aacdc2a046 fix(deletion-modal): include note title fallback
The note deletion modal previously only used the set title of
the note. This commit changes the dialog to use the result of
useNoteTitle() which contains a fallback string.

Signed-off-by: Erik Michelson <github@erik.michelson.eu>
2023-06-30 15:38:53 +02:00
Tilman Vatteroth
f4a1999a8b fix(communication): send ready event when both sides are ready
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-06-28 21:50:48 +02:00
Avinash
09aef381c1 fix(frontend): readOnly permits codemirror select text
Signed-off-by: Avinash <avinash.kumar.cs92@gmail.com>
2023-06-28 09:06:15 +02:00
Erik Michelson
58c2cfe727 enhancement: add profiling flag to analyze run
Signed-off-by: Erik Michelson <github@erik.michelson.eu>
2023-06-27 11:04:27 +02:00