Commit graph

164 commits

Author SHA1 Message Date
PalmDevs
d842c16903
feat(plugins/api.storage): remove gotcha with load: true 2025-09-02 10:24:15 +07:00
PalmDevs
ab81c4b726
feat(plugins/settings): add optional descriptions for plugin list filters 2025-08-31 20:04:10 +07:00
PalmDevs
408c8463ac
feat(plugins/settings): exclude API plugins, turn on match all by default for plugin list 2025-08-31 20:04:03 +07:00
PalmDevs
83cd04d5b1
fix(plugins/settings): key FormSwitch to prevent animation on fast scrolls 2025-08-30 23:23:37 +07:00
Palm
5f5fc6f2b2
feat!: module finders refactor (#6)
- Renamed `byX` filters to `withX`.
  It is more correct. For example: You don't lookup, wait for, or get modules **BY** props. You lookup, wait for, and get modules **WITH** props.
- Renamed `*byImportedPath` to `*withImportedPath`
  For consistency with the above change.
- Renamed `getModule` to `getModules`.
  The API allows getting multiple modules and not just a single one. Types are renamed as well.
  `getModuleByImportedPath` remains the same as it only gets one single module with a unique imported path.
- `withX` filter **helpers** removed.
  They can now be replaced with the new capability-based `and` filter.
- `preferExports` and `moduleStateAware` filters removed.
  They can now be replaced with the new capability-based `and` filter.
- Composite finders renamed.
  `some` -> `or`, `every` -> `and`
- Composite finders takes a capability-based approach.
- Filter generators now need to attach runtime flag to let the system know whether the generated filter can be used to filter modules without proper exports or not.

## Misc.

- Removed useless unsub call in Profile Badges
- Use `queueMicrotask` with `asap`

# Features

## Capability-based approach to composite filters

```js
// Old
byProps(...).withDependencies(...)
// Old, same as: preferExports(byProps(...), byDependencies(...))
every(byDependencies(...), byProps(...))
// Old, ordering matters, this would fail unexpectedly!
every(byProps(...), byDependencies(...))

// New
withProps(...).and(withDependencies(...))
// New (as well), ordering doesn't matter, this has the same result as above
withDependencies(...).and(withProps(...))
```
2025-08-30 09:19:57 +07:00
PalmDevs
497bb232ea
chore: update dependencies 2025-08-25 19:19:22 +07:00
PalmDevs
68b84ea203
fix(plugins/developer-kit): move IconComponent lookup outside function 2025-08-20 20:51:05 +07:00
PalmDevs
50a3804709
fix(plugins/developer-kit): use new icons for fallback displays 2025-08-20 20:49:23 +07:00
PalmDevs
180b8b858d
chore(plugins/user-badges): use push + pop instead of unshift + shift 2025-08-19 21:45:48 +07:00
PalmDevs
c2d12321f6
chore(lib/modules): simplify imports 2025-08-13 01:27:49 +07:00
PalmDevs
2b69e17d68
feat(plugins/settings): show Reload required dialog immediately after flag update 2025-08-13 00:54:14 +07:00
PalmDevs
d38a0394f6
fix(plugins/settings): trailing comma in Reload required dialog content 2025-08-13 00:54:01 +07:00
PalmDevs
d386035342
chore(lib/storage): move Storage#use initialization back to library 2025-08-12 16:56:10 +07:00
PalmDevs
4193661de8
fix(plugins/settings): make sure plugin name does not overflow 2025-08-11 20:10:52 +07:00
PalmDevs
7712b818f8
feat(lib/discord)!: flatten api structure 2025-08-11 17:21:12 +07:00
PalmDevs
2c6e54a81b
chore: setup lifecycles before initializing plugins 2025-08-11 16:52:26 +07:00
PalmDevs
dcfe40c1d7
feat(lib/storage): add Storage#subscribe 2025-08-11 16:39:23 +07:00
PalmDevs
02c1c69abc
chore: cleanup 2025-08-09 02:12:29 +07:00
PalmDevs
ce188950cd
feat(lib/discord): add flux APIs 2025-08-05 20:36:08 +07:00
PalmDevs
15ed4c551b
fix(plugins/developer-kit): use eval 2025-08-03 14:19:19 +07:00
PalmDevs
578b78dd7e
feat(lib/modules/finders/waits): cached-only waits 2025-07-31 19:15:08 +07:00
PalmDevs
00e9794baf
chore(plugins/no-track): make AnalyticsActionHandlers patch more readable 2025-07-30 20:17:57 +07:00
PalmDevs
8f4305e767
feat(lib/discord/types): type TableCheckboxRow TableRadioGroup TableRadioRow in Design 2025-07-26 20:01:30 +07:00
PalmDevs
7a7345d433
fix(plugins/developer-kit): correct Evaluate JavaScript placeholder code 2025-07-26 12:36:43 +07:00
PalmDevs
7ecce136a8
chore: remove useless Object.freeze patch 2025-07-26 12:13:33 +07:00
PalmDevs
7b4d566e4d
fix(plugins/settings): mark plugin as essential 2025-07-26 01:39:25 +07:00
PalmDevs
bb8c38cdcb
feat(plugins/settings): add estimatedListSize to improve initial render, fix right-side gap on cards 2025-07-26 01:31:59 +07:00
PalmDevs
6e67a8a0e4
chore(plugins/developer-kit): cleanup 2025-07-25 21:20:56 +07:00
PalmDevs
8eea0d12ea
feat: plugin dependencies and dependent dialogs, refactor plugins library and settings plugin
- Refactored the plugins library
- Refactored the settings plugin
2025-07-25 21:19:59 +07:00
PalmDevs
22ce36e4f4
chore(plugins/staff-settings): move to register on start 2025-07-22 19:13:16 +07:00
PalmDevs
b27fd9221a
fix(plugins/no-track): remove immediate discord lib dependency 2025-07-22 19:12:54 +07:00
PalmDevs
b7ed6bb88f
fix(plugins/staff-settings): use API from parameter, show toast instead of attempting refresh 2025-07-22 18:58:49 +07:00
PalmDevs
f250276180
fix(plugins/settings): don't add custom sections twice, cleanup 2025-07-22 18:22:56 +07:00
PalmDevs
44adc6679f
chore(plugins/settings): start plugin at start stage, add as dependency to developer-kit to prevent race condition 2025-07-21 22:42:37 +07:00
PalmDevs
fbe1852e8d
fix(plugins/settings): refresh SettingsNavigator to register plugin setting route on enable 2025-07-21 22:41:17 +07:00
PalmDevs
a586c0cebd
feat(lib/discord/modules/settings): new method to refresh SettingsOverviewScreen and SettingsNavigator 2025-07-21 22:40:28 +07:00
PalmDevs
d2ac578cff
feat(src/plugins/settings): use global state context to reduce rerenders 2025-07-21 22:15:31 +07:00
PalmDevs
57e2fa89da
fix(plugins/settings): NavigatorHeader not having an icon immediately in plugin settings 2025-07-21 14:45:49 +07:00
PalmDevs
f5ed49d4e2
fix: declare unscoped storage API using decorators instead 2025-07-21 14:06:51 +07:00
PalmDevs
2e455cf2c5
feat: add ability to decorate plugin APIs, move private properties to WeakMap stores 2025-07-20 23:06:56 +07:00
PalmDevs
78614c1cc9
chore: move SettingRendererConfig patches to lib, refactor how lifecycles are run 2025-07-19 23:23:32 +07:00
PalmDevs
832a3fc7da
chore(plugins/settings): cleanup 2025-07-19 14:45:16 +07:00
PalmDevs
72f4232a95
feat(plugins/settings): register plugins as own routes instead 2025-07-19 14:01:04 +07:00
PalmDevs
86e02202b6
feat(lib/discord/modules/settings): switch to objects for storage 2025-07-18 23:44:31 +07:00
PalmDevs
d3b754d2cc
feat(lib/plugins): switch to objects for storage 2025-07-18 23:44:08 +07:00
PalmDevs
7b99a59a73
chore(lib/plugins): improve plugin manifest consistencies 2025-07-18 18:29:50 +07:00
PalmDevs
5543030b57
fix(plugins/developer-settings): missing icon in React DevTools error toast 2025-07-18 02:04:54 +07:00
PalmDevs
8ca50309eb
chore(plugins/logging): only register on dev builds 2025-07-18 02:03:26 +07:00
PalmDevs
38b035966b
chore: cleanup 2025-07-18 02:02:34 +07:00
PalmDevs
9c8d55af21
fix(plugins/developer-settings): crash on copy React DevTools version 2025-07-18 01:55:52 +07:00