mirror of
https://github.com/ThatGuySam/doesitarm.git
synced 2026-05-18 06:44:46 -07:00
Rename sections to categories
This commit is contained in:
parent
e578118bab
commit
fd63c02e2a
8 changed files with 56 additions and 58 deletions
|
|
@ -240,7 +240,7 @@ export default {
|
||||||
// results: [],
|
// results: [],
|
||||||
titleStartsWithResults: [],
|
titleStartsWithResults: [],
|
||||||
titleContainsResults: [],
|
titleContainsResults: [],
|
||||||
sectionContainsResults: [],
|
categoryContainsResults: [],
|
||||||
statusResults: [],
|
statusResults: [],
|
||||||
// store: overlayStore.state
|
// store: overlayStore.state
|
||||||
}
|
}
|
||||||
|
|
@ -254,7 +254,7 @@ export default {
|
||||||
return [
|
return [
|
||||||
...this.titleStartsWithResults,
|
...this.titleStartsWithResults,
|
||||||
...this.titleContainsResults,
|
...this.titleContainsResults,
|
||||||
...this.sectionContainsResults,
|
...this.categoryContainsResults,
|
||||||
...this.statusResults
|
...this.statusResults
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|
@ -326,10 +326,10 @@ export default {
|
||||||
}
|
}
|
||||||
return matches
|
return matches
|
||||||
},
|
},
|
||||||
sectionContains (query, app) {
|
categoryContains (query, app) {
|
||||||
const matches = getAppCategory(app).label.toLowerCase().includes(query)
|
const matches = getAppCategory(app).label.toLowerCase().includes(query)
|
||||||
if (matches) {
|
if (matches) {
|
||||||
this.sectionContainsResults.push(app)
|
this.categoryContainsResults.push(app)
|
||||||
}
|
}
|
||||||
return matches
|
return matches
|
||||||
},
|
},
|
||||||
|
|
@ -384,7 +384,7 @@ export default {
|
||||||
// Clear any results from before
|
// Clear any results from before
|
||||||
this.titleStartsWithResults = []
|
this.titleStartsWithResults = []
|
||||||
this.titleContainsResults = []
|
this.titleContainsResults = []
|
||||||
this.sectionContainsResults = []
|
this.categoryContainsResults = []
|
||||||
this.statusResults = []
|
this.statusResults = []
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -407,7 +407,7 @@ export default {
|
||||||
const matchers = [
|
const matchers = [
|
||||||
this.titleStartsWith,
|
this.titleStartsWith,
|
||||||
this.titleContains,
|
this.titleContains,
|
||||||
this.sectionContains,
|
this.categoryContains,
|
||||||
this.statusIs
|
this.statusIs
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -128,8 +128,8 @@ export default async function () {
|
||||||
|
|
||||||
const appList = []
|
const appList = []
|
||||||
|
|
||||||
let sectionSlug = 'start'
|
let categorySlug = 'start'
|
||||||
let sectionTitle = 'Start'
|
let categoryTitle = 'Start'
|
||||||
let isHeading = false
|
let isHeading = false
|
||||||
let isParagraph = false
|
let isParagraph = false
|
||||||
|
|
||||||
|
|
@ -143,13 +143,13 @@ export default async function () {
|
||||||
|
|
||||||
|
|
||||||
if (isHeading && token.type === 'inline') {
|
if (isHeading && token.type === 'inline') {
|
||||||
sectionTitle = token.content
|
categoryTitle = token.content
|
||||||
sectionSlug = slugify(token.content, {
|
categorySlug = slugify(token.content, {
|
||||||
lower: true,
|
lower: true,
|
||||||
strict: true
|
strict: true
|
||||||
})
|
})
|
||||||
|
|
||||||
// appList[sectionSlug] = []
|
// appList[categorySlug] = []
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -192,15 +192,15 @@ export default async function () {
|
||||||
text,
|
text,
|
||||||
slug: appSlug,
|
slug: appSlug,
|
||||||
endpoint,
|
endpoint,
|
||||||
section: {
|
category: {
|
||||||
slug: sectionSlug
|
slug: categorySlug
|
||||||
},
|
},
|
||||||
content: token.content,
|
content: token.content,
|
||||||
relatedLinks
|
relatedLinks
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// appList[sectionSlug]
|
// appList[categorySlug]
|
||||||
|
|
||||||
|
|
||||||
// console.log('token', token)
|
// console.log('token', token)
|
||||||
|
|
|
||||||
|
|
@ -123,7 +123,7 @@ export default async function () {
|
||||||
text: getStatusText(game),
|
text: getStatusText(game),
|
||||||
slug,
|
slug,
|
||||||
endpoint: `/game/${slug}`,
|
endpoint: `/game/${slug}`,
|
||||||
section: {
|
category: {
|
||||||
slug: 'games'
|
slug: 'games'
|
||||||
},
|
},
|
||||||
content: '',
|
content: '',
|
||||||
|
|
|
||||||
|
|
@ -149,7 +149,7 @@ export default async function () {
|
||||||
text: getStatusText(formulae),
|
text: getStatusText(formulae),
|
||||||
slug,
|
slug,
|
||||||
endpoint: `/formula/${slug}`,
|
endpoint: `/formula/${slug}`,
|
||||||
section: {
|
category: {
|
||||||
slug: 'homebrew'
|
slug: 'homebrew'
|
||||||
},
|
},
|
||||||
content: formulae.comments,
|
content: formulae.comments,
|
||||||
|
|
|
||||||
|
|
@ -86,5 +86,8 @@ export const categories = {
|
||||||
|
|
||||||
|
|
||||||
export function getAppCategory (app) {
|
export function getAppCategory (app) {
|
||||||
return categories[app.section.slug]
|
if (typeof app.category === 'undefined') {
|
||||||
|
console.log('app', app)
|
||||||
|
}
|
||||||
|
return categories[app.category.slug]
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,8 @@ import buildAppList from './helpers/build-app-list.js'
|
||||||
import buildGamesList from './helpers/build-game-list.js'
|
import buildGamesList from './helpers/build-game-list.js'
|
||||||
import buildHomebrewList from './helpers/build-homebrew-list.js'
|
import buildHomebrewList from './helpers/build-homebrew-list.js'
|
||||||
|
|
||||||
|
import { categories } from './helpers/categories.js'
|
||||||
|
|
||||||
|
|
||||||
const listsOptions = [
|
const listsOptions = [
|
||||||
{
|
{
|
||||||
|
|
@ -96,26 +98,19 @@ export default {
|
||||||
.then(( lists ) => {
|
.then(( lists ) => {
|
||||||
// console.log('appList', appList)
|
// console.log('appList', appList)
|
||||||
|
|
||||||
const sectionList = []
|
|
||||||
|
|
||||||
const [
|
const [
|
||||||
appRoutes,
|
appRoutes,
|
||||||
gameRoutes,
|
gameRoutes,
|
||||||
homebrewRoutes
|
homebrewRoutes
|
||||||
] = lists.map((list, listI) => {
|
] = lists.map((list, listI) => {
|
||||||
return list.map( app => {
|
return list.map( app => {
|
||||||
// Find and store all sections
|
|
||||||
if (sectionList.includes(app.section.slug) == false) {
|
|
||||||
sectionList.push(app.section.slug)
|
|
||||||
}
|
|
||||||
|
|
||||||
return app.endpoint
|
return app.endpoint
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
// console.log('homebrewRoutes', homebrewRoutes)
|
// console.log('homebrewRoutes', homebrewRoutes)
|
||||||
|
|
||||||
const sectionRoutes = sectionList.map(slug => ({
|
const categoryRoutes = Object.keys(categories).map( slug => ({
|
||||||
route: '/kind/' + slug,
|
route: '/kind/' + slug,
|
||||||
// payload: appList
|
// payload: appList
|
||||||
}))
|
}))
|
||||||
|
|
@ -124,7 +119,7 @@ export default {
|
||||||
...appRoutes,
|
...appRoutes,
|
||||||
...gameRoutes,
|
...gameRoutes,
|
||||||
...homebrewRoutes,
|
...homebrewRoutes,
|
||||||
...sectionRoutes
|
...categoryRoutes
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,24 +7,24 @@
|
||||||
|
|
||||||
<div class="line-separator border-white border-t-2 mb-12" />
|
<div class="line-separator border-white border-t-2 mb-12" />
|
||||||
|
|
||||||
<!-- sectionList: {{ sectionList }} -->
|
<!-- categoryList: {{ categoryList }} -->
|
||||||
|
|
||||||
<ul class="categories-list space-y-3">
|
<ul class="categories-list space-y-3">
|
||||||
<li
|
<li
|
||||||
v-for="(section, i) in sectionList"
|
v-for="(category, i) in categoryList"
|
||||||
:key="`${section.slug}-${i}`"
|
:key="`${category.slug}-${i}`"
|
||||||
:ref="`${section.slug}-row`"
|
:ref="`${category.slug}-row`"
|
||||||
class="relative"
|
class="relative"
|
||||||
>
|
>
|
||||||
<!-- section.endpoint: {{ section.endpoint }} -->
|
<!-- category.endpoint: {{ category.endpoint }} -->
|
||||||
<a
|
<a
|
||||||
:href="`/kind/${section.slug}`"
|
:href="`/kind/${category.slug}`"
|
||||||
class="flex justify-start items-center inset-x-0 text-3xl md:text-4xl hover:bg-darkest border-2 border-white border-opacity-0 hover:border-opacity-50 focus:outline-none focus:bg-gray-50 duration-300 ease-in-out rounded-lg space-x-3 -mx-5 px-5 md:pr-64 py-3"
|
class="flex justify-start items-center inset-x-0 text-3xl md:text-4xl hover:bg-darkest border-2 border-white border-opacity-0 hover:border-opacity-50 focus:outline-none focus:bg-gray-50 duration-300 ease-in-out rounded-lg space-x-3 -mx-5 px-5 md:pr-64 py-3"
|
||||||
style="transition-property: border;"
|
style="transition-property: border;"
|
||||||
>
|
>
|
||||||
<div class="font-hairline">
|
<div class="font-hairline">
|
||||||
<div>{{ section.label }}</div>
|
<div>{{ category.label }}</div>
|
||||||
<div class="text-xs opacity-75 mb-3">{{ section.appNames }}</div>
|
<div class="text-xs opacity-75 mb-3">{{ category.appNames }}</div>
|
||||||
</div>
|
</div>
|
||||||
<div>➔</div>
|
<div>➔</div>
|
||||||
</a>
|
</a>
|
||||||
|
|
@ -52,36 +52,36 @@ export default {
|
||||||
const { allList } = await import('~/helpers/get-list.js')
|
const { allList } = await import('~/helpers/get-list.js')
|
||||||
const { categories } = await import('~/helpers/categories.js')
|
const { categories } = await import('~/helpers/categories.js')
|
||||||
|
|
||||||
const sectionList = {}
|
const categoryList = {}
|
||||||
|
|
||||||
allList.forEach( app => {
|
allList.forEach( app => {
|
||||||
// Find and store all sections
|
// Find and store all categorys
|
||||||
|
|
||||||
// console.log('app.section.slug', app.section.slug)
|
// console.log('app.category.slug', app.category.slug)
|
||||||
|
|
||||||
if (sectionList.hasOwnProperty(app.section.slug)) {
|
if (categoryList.hasOwnProperty(app.category.slug)) {
|
||||||
sectionList[app.section.slug].appNamesList.push(app.name)
|
categoryList[app.category.slug].appNamesList.push(app.name)
|
||||||
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
sectionList[app.section.slug] = {
|
categoryList[app.category.slug] = {
|
||||||
...categories[app.section.slug],
|
...categories[app.category.slug],
|
||||||
appNamesList: [ app.name ]
|
appNamesList: [ app.name ]
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
// Add App Names Text into sectionList
|
// Add App Names Text into categoryList
|
||||||
Object.keys(sectionList).map(function(key, index) {
|
Object.keys(categoryList).map(function(key, index) {
|
||||||
const section = sectionList[key]
|
const category = categoryList[key]
|
||||||
sectionList[key] = {
|
categoryList[key] = {
|
||||||
...section,
|
...category,
|
||||||
appNames: section.appNamesList.slice(0, 25).join(', ') + ', etc...'
|
appNames: category.appNamesList.slice(0, 25).join(', ') + ', etc...'
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
return {
|
return {
|
||||||
sectionList
|
categoryList
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
|
|
@ -92,8 +92,8 @@ export default {
|
||||||
return {}
|
return {}
|
||||||
},
|
},
|
||||||
// computed: {
|
// computed: {
|
||||||
// sectionList () {
|
// categoryList () {
|
||||||
// return sectionList
|
// return categoryList
|
||||||
// }
|
// }
|
||||||
// },
|
// },
|
||||||
head() {
|
head() {
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
<section class="container py-24">
|
<section class="container py-24">
|
||||||
<div class="flex flex-col items-center">
|
<div class="flex flex-col items-center">
|
||||||
<h1 class="title text-3xl md:text-5xl font-hairline leading-tight text-center pb-4">
|
<h1 class="title text-3xl md:text-5xl font-hairline leading-tight text-center pb-4">
|
||||||
{{ section.pluralLabel || section.label }} that are reported to support Apple Silicon
|
{{ category.pluralLabel || category.label }} that are reported to support Apple Silicon
|
||||||
</h1>
|
</h1>
|
||||||
|
|
||||||
<h2
|
<h2
|
||||||
|
|
@ -13,7 +13,7 @@
|
||||||
</h2>
|
</h2>
|
||||||
|
|
||||||
<Search
|
<Search
|
||||||
:app-list="sectionAppList"
|
:app-list="categoryAppList"
|
||||||
:quick-buttons="[]"
|
:quick-buttons="[]"
|
||||||
@update:query="query = $event"
|
@update:query="query = $event"
|
||||||
/>
|
/>
|
||||||
|
|
@ -44,7 +44,7 @@ import LinkButton from '~/components/link-button.vue'
|
||||||
|
|
||||||
import { byTimeThenNull } from '~/helpers/sort-list.js'
|
import { byTimeThenNull } from '~/helpers/sort-list.js'
|
||||||
|
|
||||||
import { categories } from '~/helpers/categories.js'
|
import { categories, getAppCategory } from '~/helpers/categories.js'
|
||||||
|
|
||||||
import appList from '~/static/app-list.json'
|
import appList from '~/static/app-list.json'
|
||||||
import gamelist from '~/static/game-list.json'
|
import gamelist from '~/static/game-list.json'
|
||||||
|
|
@ -74,13 +74,13 @@ export default {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
section () {
|
category () {
|
||||||
return categories[this.slug]
|
return categories[this.slug]
|
||||||
},
|
},
|
||||||
sectionAppList () {
|
categoryAppList () {
|
||||||
|
|
||||||
const filteredList = allList.filter(app => {
|
const filteredList = allList.filter(app => {
|
||||||
return app.section.slug === this.slug
|
return app.category.slug === this.slug
|
||||||
})
|
})
|
||||||
|
|
||||||
// const sortedList = list.sort(byTimeThenNull)
|
// const sortedList = list.sort(byTimeThenNull)
|
||||||
|
|
@ -88,12 +88,12 @@ export default {
|
||||||
return filteredList
|
return filteredList
|
||||||
},
|
},
|
||||||
supportedAppList () {
|
supportedAppList () {
|
||||||
return this.sectionAppList.filter(app => {
|
return this.categoryAppList.filter(app => {
|
||||||
return app.status.includes('yes')
|
return app.status.includes('yes')
|
||||||
}).map(app => app.name)
|
}).map(app => app.name)
|
||||||
},
|
},
|
||||||
title () {
|
title () {
|
||||||
return `List of ${this.section.pluralLabel || this.section.label} that work on Apple Silicon?`
|
return `List of ${this.category.pluralLabel || this.category.label} that work on Apple Silicon?`
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
head() {
|
head() {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue