mirror of
https://github.com/flarum/core.git
synced 2025-10-25 21:56:18 +02:00
Rewrite ItemList; update ItemList typings (#3005)
* Improve typings for ItemList * Add new `.replace()` syntax * Update JSDoc * Add missing `T` type * Fix typo Co-authored-by: Alexander Skvortsov <38059171+askvortsov1@users.noreply.github.com> * Allow choice to not set `itemName` property when calling `toArray` * Make `ItemList.items` read-only * Modify `.replace()`; add `.changePriority()` * Complete rename * Update JSDoc * Add `.toObject()` method; deprecate `.items` * Rewrite `.toArray()` to use Proxy instead of modifying the item content - Fixes #3030 - Fixes issue where setting `itemName` property could result in errors depending on the object type (e.g. proxies) - Fixes unneeded duplication of item list - Add option to disable setting `itemName` property on primitives * Simplify condition * Remove debug code * Make proxying function protected instead of private * Update a usage of ItemList as an example * Make `itemName` property read-only * Use correct capitalisation of `object` * Invert `toArray` parameter function * Simplify isEmpty check * Update ItemList.ts * Fix `merge()` * Remove extra JSDoc comment * Use `._items` directly for merging * Rename methods: `replace` -> `set`; `changePriority` -> `setPriority` This more closely matches our existing method names (`get()`) * Change `items` getter * Simplify proxying * Update URL to source function * Update compat * Various changes to toObject * Remove `Item.key` * Make item content proxy method private * Enforce merge typings * Update TSDoc comments to use `{@link}` for references to methods * Correct references to deprecated `.replace` method * Throw error when setting content/priority of non-existent items * Remove intermediary variable * Update TSDoc block * Update js/src/@types/global.d.ts Co-authored-by: Alexander Skvortsov <38059171+askvortsov1@users.noreply.github.com>
This commit is contained in:
@@ -79,6 +79,7 @@ import listItems from './helpers/listItems';
|
||||
import Fragment from './Fragment';
|
||||
import DefaultResolver from './resolvers/DefaultResolver';
|
||||
import PaginatedListState from './states/PaginatedListState';
|
||||
import isObject from './utils/isObject';
|
||||
|
||||
export default {
|
||||
extend: extend,
|
||||
@@ -114,6 +115,7 @@ export default {
|
||||
'utils/mapRoutes': mapRoutes,
|
||||
'utils/withAttr': withAttr,
|
||||
'utils/throttleDebounce': ThrottleDebounce,
|
||||
'utils/isObject': isObject,
|
||||
'models/Notification': Notification,
|
||||
'models/User': User,
|
||||
'models/Post': Post,
|
||||
|
||||
Reference in New Issue
Block a user