* 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>
* reuse single meId parameter
* unify code style
Use template string to avoid having to use escaped quote marks.
* fix: follower only notes are visible to mentioned users
This synchronizes the visibility rules with the Notes.isVisibleForMe
method from packages/backend/src/models/repositories/note.ts
* add comment
* 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>
* docs: category & description for reset password
* docs: category & description for testing
* docs: descriptions for groups endpoints
* docs: descriptions for drive file endpoints
* docs: descriptions for sw endpoints
* docs: descriptions for user list endpoints
* docs: descriptions & result type for gallery posts
* docs: descriptions & result type for user endpoints
* docs: add return type for stats
* 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 id for activitypub follows
* fix lint
* fix: follower must be local, followee must be remote
Misskey will only use ActivityPub follow requests for users that are local
and are requesting to follow a remote user. This check is to ensure that
this endpoint can not be used by other services or instances.
* fix: missing import
* render block with id
* fix comment
* refactor: parseUri types and checks
The type has been refined to better represent what it actually is. Uses of
parseUri are now also checking the parsed object type before resolving.
* cannot resolve URLs with fragments
* also take remaining part of URL into account
Needed for parsing the follows URIs.
* Resolver uses DbResolver for local
* remove unnecessary use of DbResolver
Using DbResolver would mean that the URL is parsed and handled again.
This duplicated processing can be avoided by querying the database directly.
* fix missing property name
Ensure that the _misskey_content attribute will always exist. Because
the API endpoint does not require the existence of the `text` field,
that field may be `undefined`. By using `?? null` it can be ensured
that the value is at least `null`.
Furthermore, the rendered HTML of a note with empty text will also be
the empty string. From git blame it seems that this behaviour was added
because of a Mastodon bug that might have previously existed. Hoever,
this seems to be no longer the case as I can find mastodon posts that
have empty content.
The code could be made a bit more succinct by using the null coercion
operator.
* 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