From 3f1f962cfed12619f52c2cfb315f87581d5b7aca Mon Sep 17 00:00:00 2001 From: eth3lbert Date: Tue, 10 Dec 2024 14:15:25 +0800 Subject: [PATCH] ember-data: Fix `ember-data:deprecate-array-like` warning Since the underlying implementation of `@reads` uses `.get()`, which introduces deprecation warnings `deprecation id: ember-data:deprecate-array-like`, this commit fixes the warning by rewriting the `@reads('some.deep.path')` to equivalent `@cached get function ()`. --- app/controllers/categories.js | 8 ++++---- app/controllers/category/index.js | 8 ++++---- app/controllers/crate/reverse-dependencies.js | 8 ++++---- app/controllers/crates.js | 7 ++++--- app/controllers/keyword.js | 8 ++++---- app/controllers/keywords.js | 8 ++++---- app/controllers/me/crates.js | 8 ++++---- app/controllers/me/following.js | 8 ++++---- app/controllers/search.js | 6 ++++-- app/controllers/team.js | 8 ++++---- app/controllers/user.js | 8 ++++---- 11 files changed, 44 insertions(+), 41 deletions(-) diff --git a/app/controllers/categories.js b/app/controllers/categories.js index 5486f1d9fed..c2e68557e1d 100644 --- a/app/controllers/categories.js +++ b/app/controllers/categories.js @@ -1,8 +1,6 @@ import Controller from '@ember/controller'; import { tracked } from '@glimmer/tracking'; -import { reads } from 'macro-decorators'; - import { pagination } from '../utils/pagination'; export default class CategoriesController extends Controller { @@ -11,11 +9,13 @@ export default class CategoriesController extends Controller { @tracked per_page = 100; @tracked sort = 'alpha'; - @reads('model.meta.total') totalItems; - @pagination() pagination; get currentSortBy() { return this.sort === 'crates' ? '# Crates' : 'Alphabetical'; } + + get totalItems() { + return this.model.meta.total ?? 0; + } } diff --git a/app/controllers/category/index.js b/app/controllers/category/index.js index d520abd3b83..e47d7d35aeb 100644 --- a/app/controllers/category/index.js +++ b/app/controllers/category/index.js @@ -1,8 +1,6 @@ import Controller from '@ember/controller'; import { tracked } from '@glimmer/tracking'; -import { reads } from 'macro-decorators'; - import { pagination } from '../../utils/pagination'; export default class CategoryIndexController extends Controller { @@ -11,8 +9,6 @@ export default class CategoryIndexController extends Controller { @tracked per_page = 10; @tracked sort = 'recent-downloads'; - @reads('model.meta.total') totalItems; - @pagination() pagination; category = null; @@ -30,4 +26,8 @@ export default class CategoryIndexController extends Controller { return 'Recent Downloads'; } } + + get totalItems() { + return this.model.meta.total ?? 0; + } } diff --git a/app/controllers/crate/reverse-dependencies.js b/app/controllers/crate/reverse-dependencies.js index 3289cad0fc6..74003936980 100644 --- a/app/controllers/crate/reverse-dependencies.js +++ b/app/controllers/crate/reverse-dependencies.js @@ -1,8 +1,6 @@ import Controller from '@ember/controller'; import { tracked } from '@glimmer/tracking'; -import { reads } from 'macro-decorators'; - import { pagination } from '../../utils/pagination'; export default class ReverseDependenciesController extends Controller { @@ -11,7 +9,9 @@ export default class ReverseDependenciesController extends Controller { @tracked per_page = 10; @tracked crate = null; - @reads('model.meta.total') totalItems; - @pagination() pagination; + + get totalItems() { + return this.model.meta.total ?? 0; + } } diff --git a/app/controllers/crates.js b/app/controllers/crates.js index 4a2075cb023..da58b2791d4 100644 --- a/app/controllers/crates.js +++ b/app/controllers/crates.js @@ -1,8 +1,6 @@ import Controller from '@ember/controller'; import { tracked } from '@glimmer/tracking'; -import { reads } from 'macro-decorators'; - import { pagination } from '../utils/pagination'; export default class CratesController extends Controller { @@ -11,7 +9,6 @@ export default class CratesController extends Controller { @tracked per_page = 50; @tracked sort = 'recent-downloads'; - @reads('model.meta.total') totalItems; @pagination() pagination; get currentSortBy() { @@ -27,4 +24,8 @@ export default class CratesController extends Controller { return 'Alphabetical'; } } + + get totalItems() { + return this.model.meta.total ?? 0; + } } diff --git a/app/controllers/keyword.js b/app/controllers/keyword.js index abd129b67c0..f05a660eaa3 100644 --- a/app/controllers/keyword.js +++ b/app/controllers/keyword.js @@ -1,8 +1,6 @@ import Controller from '@ember/controller'; import { tracked } from '@glimmer/tracking'; -import { reads } from 'macro-decorators'; - import { pagination } from '../utils/pagination'; export default class KeywordIndexController extends Controller { @@ -11,8 +9,6 @@ export default class KeywordIndexController extends Controller { @tracked per_page = 10; @tracked sort = 'recent-downloads'; - @reads('model.crates.meta.total') totalItems; - @pagination() pagination; get currentSortBy() { @@ -28,4 +24,8 @@ export default class KeywordIndexController extends Controller { return 'Recent Downloads'; } } + + get totalItems() { + return this.model.crates.meta.total ?? 0; + } } diff --git a/app/controllers/keywords.js b/app/controllers/keywords.js index a0c145b874d..244121945a5 100644 --- a/app/controllers/keywords.js +++ b/app/controllers/keywords.js @@ -1,8 +1,6 @@ import Controller from '@ember/controller'; import { tracked } from '@glimmer/tracking'; -import { reads } from 'macro-decorators'; - import { pagination } from '../utils/pagination'; export default class KeywordsController extends Controller { @@ -11,11 +9,13 @@ export default class KeywordsController extends Controller { @tracked per_page = 10; @tracked sort = 'crates'; - @reads('model.meta.total') totalItems; - @pagination() pagination; get currentSortBy() { return this.sort === 'crates' ? '# Crates' : 'Alphabetical'; } + + get totalItems() { + return this.model.meta.total ?? 0; + } } diff --git a/app/controllers/me/crates.js b/app/controllers/me/crates.js index 421bb2f3fd7..279a04acf10 100644 --- a/app/controllers/me/crates.js +++ b/app/controllers/me/crates.js @@ -1,8 +1,6 @@ import Controller from '@ember/controller'; import { tracked } from '@glimmer/tracking'; -import { reads } from 'macro-decorators'; - import { pagination } from '../../utils/pagination'; // TODO: reduce duplicatoin with controllers/crates @@ -13,8 +11,6 @@ export default class MeCratesController extends Controller { @tracked per_page = 10; @tracked sort = 'alpha'; - @reads('model.meta.total') totalItems; - @pagination() pagination; get currentSortBy() { @@ -30,4 +26,8 @@ export default class MeCratesController extends Controller { return 'Alphabetical'; } } + + get totalItems() { + return this.model.meta.total ?? 0; + } } diff --git a/app/controllers/me/following.js b/app/controllers/me/following.js index b7a77b8d0f9..65d526d5f6b 100644 --- a/app/controllers/me/following.js +++ b/app/controllers/me/following.js @@ -1,8 +1,6 @@ import Controller from '@ember/controller'; import { tracked } from '@glimmer/tracking'; -import { reads } from 'macro-decorators'; - import { pagination } from '../../utils/pagination'; // TODO: reduce duplicatoin with controllers/me/crates @@ -13,11 +11,13 @@ export default class FollowingController extends Controller { @tracked per_page = 10; @tracked sort = 'alpha'; - @reads('model.meta.total') totalItems; - @pagination() pagination; get currentSortBy() { return this.sort === 'downloads' ? 'Downloads' : 'Alphabetical'; } + + get totalItems() { + return this.model.meta.total ?? 0; + } } diff --git a/app/controllers/search.js b/app/controllers/search.js index 65c393b0fb8..aa3054d22ff 100644 --- a/app/controllers/search.js +++ b/app/controllers/search.js @@ -29,8 +29,6 @@ export default class SearchController extends Controller { return !this.dataTask.lastComplete && this.dataTask.isRunning; } - @reads('model.meta.total') totalItems; - @pagination() pagination; get pageTitle() { @@ -75,4 +73,8 @@ export default class SearchController extends Controller { return await this.store.query('crate', searchOptions); }); + + get totalItems() { + return this.model.meta.total ?? 0; + } } diff --git a/app/controllers/team.js b/app/controllers/team.js index 25ea74b4eff..3122c4a0e44 100644 --- a/app/controllers/team.js +++ b/app/controllers/team.js @@ -1,8 +1,6 @@ import Controller from '@ember/controller'; import { tracked } from '@glimmer/tracking'; -import { reads } from 'macro-decorators'; - import { pagination } from '../utils/pagination'; export default class TeamController extends Controller { @@ -11,8 +9,6 @@ export default class TeamController extends Controller { @tracked per_page = 10; @tracked sort = 'alpha'; - @reads('model.crates.meta.total') totalItems; - @pagination() pagination; get currentSortBy() { @@ -28,4 +24,8 @@ export default class TeamController extends Controller { return 'Alphabetical'; } } + + get totalItems() { + return this.model.crates.meta.total ?? 0; + } } diff --git a/app/controllers/user.js b/app/controllers/user.js index 95e39bc0db0..4bda5314616 100644 --- a/app/controllers/user.js +++ b/app/controllers/user.js @@ -1,8 +1,6 @@ import Controller from '@ember/controller'; import { tracked } from '@glimmer/tracking'; -import { reads } from 'macro-decorators'; - import { pagination } from '../utils/pagination'; // TODO: reduce duplication with controllers/crates @@ -13,8 +11,6 @@ export default class UserController extends Controller { @tracked per_page = 10; @tracked sort = 'alpha'; - @reads('model.crates.meta.total') totalItems; - @pagination() pagination; get currentSortBy() { @@ -30,4 +26,8 @@ export default class UserController extends Controller { return 'Alphabetical'; } } + + get totalItems() { + return this.model.crates.meta.total ?? 0; + } }