diff --git a/pages/cherry-augments/index.vue b/pages/cherry-augments/index.vue
index b264ac9..cfdbd26 100644
--- a/pages/cherry-augments/index.vue
+++ b/pages/cherry-augments/index.vue
@@ -4,22 +4,12 @@ const { currentLocale } = useLocale();
const getCherryAugments = async () => (await client.cherryAugments.listAsync({locale: currentLocale.value, version: "latest"}))
.sort((a, b) => a.id - b.id);
-const query = ref("");
-
const cherryAugments = ref(await getCherryAugments());
watch (currentLocale, async() => {
cherryAugments.value = await getCherryAugments();
});
-const { isNumeric } = useIsNumeric();
-const filteredCherryAugments = computed(() => {
- let filtered = [];
- if (isNumeric(query.value))
- filtered = cherryAugments.value.filter((x) => x.id == parseInt(query.value, 10));
- else
- filtered = cherryAugments.value.filter((x) => x.nameTRA.toLowerCase().includes(query.value.toLowerCase()));
- return filtered;
-})
+const { query, results } = useQueryable(cherryAugments, (x) => x.id, (x) => x.nameTRA);
@@ -28,14 +18,11 @@ const filteredCherryAugments = computed(() => {
{{ cherryAugments.length }} augments
-
-
-
+
-
diff --git a/pages/companions/index.vue b/pages/companions/index.vue
index 7024d74..a494140 100644
--- a/pages/companions/index.vue
+++ b/pages/companions/index.vue
@@ -4,23 +4,13 @@ const { currentLocale } = useLocale();
const getCompanions = async () => (await client.companions.listAsync({locale: currentLocale.value, version: "latest"}))
.sort((a, b) => a.itemId - b.itemId);
-const query = ref("");
-
const companions = ref(await getCompanions());
watch(currentLocale, async() => {
companions.value = await getCompanions();
});
-const { isNumeric } = useIsNumeric();
-const p = computed(() => {
- let filtered = [];
- if (isNumeric(query.value))
- filtered = companions.value.filter((x) => x.itemId == parseInt(query.value, 10));
- else
- filtered = companions.value.filter((x) => x.name.toLowerCase().includes(query.value.toLowerCase()));
-
- return usePagination(filtered, 100);
-})
+const { query, paginate } = useQueryable(companions, (x) => x.itemId, (x) => x.name);
+const pagination = paginate(100);
@@ -29,18 +19,12 @@ const p = computed(() => {
{{ companions.length }} companions
-
-
-
-
-
-
+
+
-
diff --git a/pages/items/index.vue b/pages/items/index.vue
index b67aa1e..c44ff26 100644
--- a/pages/items/index.vue
+++ b/pages/items/index.vue
@@ -7,12 +7,20 @@ const items = ref(await getItems());
watch(currentLocale, async () => {
items.value = await getItems();
});
+
+const { query, results } = useQueryable(items, (x) => x.id, (x) => x.name);
+
+
+ {{ items.length }} items
+
+
+
-
diff --git a/pages/loots/index.vue b/pages/loots/index.vue
index eb5ec0d..6dc269c 100644
--- a/pages/loots/index.vue
+++ b/pages/loots/index.vue
@@ -20,7 +20,7 @@ const loots = ref(await getLoots());
const categories = new Set(loots.value.map((x) => x.type));
const { isNumeric } = useIsNumeric();
-const p = computed(() => {
+const pagination = computed(() => {
let filtered = [];
filtered = loots.value.filter((x) => x.name.toLowerCase().includes(query.value.toLowerCase()));
@@ -60,16 +60,12 @@ watch(currentLocale, async() => {
{{ loots.length }} loots
-
-
-
-
+
+
-
diff --git a/pages/runes/index.vue b/pages/runes/index.vue
index 4b67a4d..81ecddc 100644
--- a/pages/runes/index.vue
+++ b/pages/runes/index.vue
@@ -4,22 +4,12 @@ const { currentLocale } = useLocale();
const getRunes = async () => (await client.perks.listAsync({locale: currentLocale.value, version: "latest"}))
.sort((a, b) => a.id - b.id)
-const query = ref("");
-
const runes = ref(await getRunes());
watch(currentLocale, async() => {
runes.value = await getRunes();
});
-const { isNumeric } = useIsNumeric();
-const filteredRunes = computed(() => {
- let filtered = [];
- if (isNumeric(query.value))
- filtered = runes.value.filter((x) => x.id == parseInt(query.value, 10));
- else
- filtered = runes.value.filter((x) => x.name.toLocaleLowerCase().includes(query.value.toLocaleLowerCase()));
- return filtered;
-})
+const { query, results } = useQueryable(runes, (x) => x.id, (x) => x.name);
@@ -29,13 +19,10 @@ const filteredRunes = computed(() => {
{{ runes.length }} runes
-
-
-
+
-
diff --git a/pages/summoner-emotes/index.vue b/pages/summoner-emotes/index.vue
index 4905111..28ef07a 100644
--- a/pages/summoner-emotes/index.vue
+++ b/pages/summoner-emotes/index.vue
@@ -4,23 +4,13 @@ const { currentLocale } = useLocale();
const getEmotes = async () => (await client.summonerEmotes.listAsync({locale: currentLocale.value, version: "latest"}))
.sort((a, b) => a.id - b.id);
-const query = ref("");
-
const emotes = ref(await getEmotes());
watch(currentLocale, async() => {
emotes.value = await getEmotes();
});
-const { isNumeric } = useIsNumeric();
-const p = computed(() => {
- let filtered = [];
- if (isNumeric(query.value))
- filtered = emotes.value.filter((x) => x.id == parseInt(query.value, 10));
- else
- filtered = emotes.value.filter((x) => x.name.toLowerCase().includes(query.value.toLowerCase()));
-
- return usePagination(filtered, 100);
-})
+const { query, paginate } = useQueryable(emotes, (x) => x.id, (x) => x.name);
+const pagination = paginate(100);
@@ -29,15 +19,11 @@ const p = computed(() => {
{{ emotes.length }} summoner emotes
-
-
-
-
+
+
-
diff --git a/pages/summoner-icons/index.vue b/pages/summoner-icons/index.vue
index 939ca20..2c77b8a 100644
--- a/pages/summoner-icons/index.vue
+++ b/pages/summoner-icons/index.vue
@@ -4,23 +4,13 @@ const { currentLocale } = useLocale();
const getIcons = async () => (await client.summonerIcons.listAsync({locale: currentLocale.value, version: "latest"}))
.sort((a, b) => a.id - b.id);
-const query = ref("")
-
const icons = ref(await getIcons());
watch(currentLocale, async() => {
icons.value = await getIcons();
});
-const { isNumeric } = useIsNumeric();
-const p = computed(() => {
- let filtered = [];
- if (isNumeric(query.value))
- filtered = icons.value.filter((x) => x.id == parseInt(query.value, 10));
- else
- filtered = icons.value.filter((x) => x.title.toLowerCase().includes(query.value.toLowerCase()));
-
- return usePagination(filtered, 100);
-});
+const { query, paginate } = useQueryable(icons, (x) => x.id, (x) => x.title);
+const pagination = paginate(100);
@@ -29,16 +19,12 @@ const p = computed(() => {
{{ icons.length }} summoner icons
-
-
-
-
+
+
-
diff --git a/pages/tft-damage-skins/index.vue b/pages/tft-damage-skins/index.vue
index 457eaa7..ec806a1 100644
--- a/pages/tft-damage-skins/index.vue
+++ b/pages/tft-damage-skins/index.vue
@@ -4,22 +4,12 @@ const { currentLocale } = useLocale();
const getTftDamageSkins = async () => (await client.tftDamageSkins.listAsync({ locale: currentLocale.value, version: "latest"}))
.sort((a, b) => a.itemId - b.itemId);
-const query = ref("");
-
const tftDamageSkins = ref(await getTftDamageSkins());
watch(currentLocale, async() => {
tftDamageSkins.value = await getTftDamageSkins();
});
-const { isNumeric } = useIsNumeric();
-const p = computed(() => {
- let filtered = [];
- if (isNumeric(query.value))
- filtered = tftDamageSkins.value.filter((x) => x.itemId == parseInt(query.value));
- else
- filtered = tftDamageSkins.value.filter((x) => x.name.toLowerCase().includes(query.value.toLowerCase()));
- return filtered;
-})
+const { query, results } = useQueryable(tftDamageSkins, (x) => x.itemId, (x) => x.name);
@@ -28,14 +18,11 @@ const p = computed(() => {
{{ tftDamageSkins.length }} TFT damage skins
-
-
-
+
-
diff --git a/pages/tft-map-skins/index.vue b/pages/tft-map-skins/index.vue
index 12b805e..da27434 100644
--- a/pages/tft-map-skins/index.vue
+++ b/pages/tft-map-skins/index.vue
@@ -4,22 +4,12 @@ const { currentLocale } = useLocale();
const getTftMapSkins = async () => (await client.tftMapSkins.listAsync({ locale: currentLocale.value, version: "latest"}))
.sort((a, b) => a.itemId - b.itemId);
-const query = ref("");
-
const tftMapSkins = ref(await getTftMapSkins());
watch(currentLocale, async() => {
tftMapSkins.value = await getTftMapSkins();
});
-const { isNumeric } = useIsNumeric();
-const p = computed(() => {
- let filtered = [];
- if (isNumeric(query.value))
- filtered = tftMapSkins.value.filter((x) => x.itemId == parseInt(query.value));
- else
- filtered = tftMapSkins.value.filter((x) => x.name.toLowerCase().includes(query.value.toLowerCase()));
- return filtered;
-})
+const { query, results } = useQueryable(tftMapSkins, (x) => x.itemId, (x) => x.name);
@@ -28,13 +18,10 @@ const p = computed(() => {
{{ tftMapSkins.length }} TFT map skins
-
-
-
+
-
diff --git a/pages/ward-skins/index.vue b/pages/ward-skins/index.vue
index a7643ab..f1012ae 100644
--- a/pages/ward-skins/index.vue
+++ b/pages/ward-skins/index.vue
@@ -3,23 +3,12 @@ const { client } = useClient();
const { currentLocale } = useLocale();
const getSkins = async () => await client.wardSkins.listAsync({locale: currentLocale.value, version: "latest"});
-const query = ref("");
-
const skins = ref(await getSkins());
watch(currentLocale, async() => {
skins.value = await getSkins();
});
-const { isNumeric } = useIsNumeric();
-const p = computed(() => {
- let filtered = [];
- if (isNumeric(query.value))
- filtered = skins.value.filter((x) => x.id == parseInt(query.value, 10));
- else
- filtered = skins.value.filter((x) => x.name.toLowerCase().includes(query.value.toLowerCase()));
-
- return filtered;
-});
+const { query, results } = useQueryable(skins, (x) => x.id, (x) => x.name);
@@ -28,14 +17,11 @@ const p = computed(() => {
{{ skins.length }} skins
-
-
-
+