* refactor(client): refactor page-editor elements to use Composition API
* Apply review suggestions from @Johann150
Co-authored-by: Johann150 <johann@qwertqwefsday.eu>
Co-authored-by: Johann150 <johann@qwertqwefsday.eu>
* chore: fix some lints automatically
Fixed lints that were automatically fixable with `eslint --fix`.
* fix type
* workaround for empty interface lint
* fix: display cancelling follow request
* remove unnecessary branch
The executed code is the same as in the else branch so this special
condition is unnecessary.
* remove code duplication
Use the same callback as later for updating these variables.
* use $ref sugar
* remove unused import
Co-authored-by: blackskye-sx <saul.newman@gmail.com>
* feat: option to collapse long notes
Closes#8559
* do not collapse if cw exists
* use '閉じる' to close / show less.
* make it sticky
* Change style of the Show less button
* add more user details for admins to see
* fix some issues
* small style fix
as suggested by Johann150
Co-authored-by: Johann150 <johann@qwertqwefsday.eu>
* fix
Co-authored-by: Johann150 <johann@qwertqwefsday.eu>
Co-authored-by: Johann150 <johann@qwertqwefsday.eu>
* remove unnecessary if
`Array.prototype.some` already returns a boolean so an if to return
true or false is completely unnecessary in this case.
* perf: use count instead of find
When using `count` instead of `findOneBy`, the data is not
unnecessarily loaded.
* remove duplicate null check
The variable is checked for null in the lines above and the function
returns if so. Therefore, it can not be null at this point.
* simplify `getJsonSchema`
Because the assigned value is `null` and the used keys are only
shallow, use of `nestedProperty.set` seems inappropriate. Because the
value is not read, the initial for loop can be replaced by a `for..in`
loop.
Since all keys will be assigned `null`, the condition of the ternary
expression in the nested function will always be true. Therefore the
recursion case will never happen. With this the nested function can be
eliminated.
* remove duplicate condition
The code above already checks `dragging` and returns if it is truthy.
Checking it again later is therefore unnecessary.
To make this more obvious the `return` is removed in favour of using
an if...else construct.
* remove impossible "unknown" time
The `ago` variable will always be a number and all non-negative numbers
are already covered by other cases, the negative case is handled with
`future` so there is no case when `unkown` could be achieved.
* test(e2e): add baseline for widget tests
* chore(repo): enable test running in branch
* fix(e2e): set viewport for widget tests
* fix(client): add widget identifier classes to widgets
* test(e2e): add memo widget test
* fix(tests): force select value
* fix(tests): force button press for widget addition
* fix(tests): invoke select value differently
* fix(tests): adjust widget submit
* fix(tests): don't explicitly navigate for widget test
* fix(tests): click label to hide select popup
* fix(tests): just click modal background
* fix(tests): adjust modal background selector
* fix(tests): click all modal backgrounds
* feat(e2e): add test for adding timeline widget
* fix(client): add more widget identifier classes
* feat(tests): add method abstraction for test cases
* fix(tests): force-click overlays
* fix(tests): force widget button press
* fix(tests): remove timeout from final widget check
* feat(tests): add widget removal test case
* fix(client): use mk instead of msky as class prefix
* fix(tests): check widgets for existence rather than visibility
* chore(meta): don't run tests for specific feature branch
* enhance: rate limit works without signed in user
* fix: make limit key required for limiter
As before the fallback limiter key will be set from the endpoint name.
* enhance: use limiter for signin
* Revert "CAPTCHA求めるのは2fa認証が無効になっているときだけにした"
This reverts commit 02a43a310f.
* Revert "feat: make captcha required when signin to improve security"
This reverts commit b21b058005.
* fix undefined reference
* fix: better error message
* enhance: only handle prefix of IPv6