Modrinth/store/cosmetics.js
Geometrically 1f133dbcd0
Datapack support (#815)
* Shader support PR

* Make search page work

* Fix env showing

* Make moderation look reasonable

* Fix search for shaders

* Datapack support

* Make file types work + datapack inferring

* Add editing to file types

* Finish datapack file generation

* Fix bugs, make forge support work

* Fix inconsistent data pack label

* Final fixes
2022-12-29 09:59:41 -07:00

113 lines
3.2 KiB
JavaScript

const parameters = {
maxAge: 60 * 60 * 24 * 365 * 10, // Ten years
sameSite: 'Strict',
secure: true,
httpOnly: false,
path: '/',
}
export const defaults = {
searchLayout: false,
projectLayout: false,
modpacksAlphaNotice: true,
advancedRendering: true,
externalLinksNewTab: true,
notUsingBlockers: false,
searchDisplayMode: {
mod: 'list',
plugin: 'list',
resourcepack: 'gallery',
modpack: 'list',
shader: 'gallery',
datapack: 'list',
user: 'list',
},
}
export const state = () => defaults
export const mutations = {
SET_SEARCH_LAYOUT(state, searchLayout) {
state.searchLayout = searchLayout
},
SET_PROJECT_LAYOUT(state, projectLayout) {
state.projectLayout = projectLayout
},
SET_MODPACKS_ALPHA_NOTICE(state, modpacksAlphaNotice) {
state.modpacksAlphaNotice = modpacksAlphaNotice
},
SET_ADVANCED_RENDERING(state, advancedRendering) {
state.advancedRendering = advancedRendering
},
SET_EXTERNAL_LINKS_NEW_TAB(state, externalLinksNewTab) {
state.externalLinksNewTab = externalLinksNewTab
},
SET_SEARCH_DISPLAY_MODE(state, { projectType, mode }) {
state.searchDisplayMode[projectType] = mode
},
SET_NOT_USING_BLOCKERS(state, notUsingBlockers) {
state.notUsingBlockers = notUsingBlockers
},
}
export const actions = {
fetchCosmetics({ commit }, $cookies) {
commit(
'SET_PROJECT_LAYOUT',
$cookies.get('project-layout') ?? defaults.projectLayout
)
commit(
'SET_SEARCH_LAYOUT',
$cookies.get('search-layout') ?? defaults.searchLayout
)
commit(
'SET_MODPACKS_ALPHA_NOTICE',
$cookies.get('modpacks-alpha-notice') ?? defaults.modpacksAlphaNotice
)
commit(
'SET_ADVANCED_RENDERING',
$cookies.get('advanced-rendering') ?? defaults.advancedRendering
)
commit(
'SET_EXTERNAL_LINKS_NEW_TAB',
$cookies.get('external-links-new-tab') ?? defaults.externalLinksNewTab
)
Object.keys(defaults.searchDisplayMode).forEach((projectType) => {
commit('SET_SEARCH_DISPLAY_MODE', {
projectType,
mode:
$cookies.get('search-display-mode-' + projectType) ??
defaults.searchDisplayMode[projectType],
})
})
},
save(
{ commit },
{
projectLayout,
searchLayout,
modpacksAlphaNotice,
advancedRendering,
externalLinksNewTab,
$cookies,
}
) {
commit('SET_PROJECT_LAYOUT', projectLayout)
commit('SET_SEARCH_LAYOUT', searchLayout)
commit('SET_MODPACKS_ALPHA_NOTICE', modpacksAlphaNotice)
commit('SET_ADVANCED_RENDERING', advancedRendering)
commit('SET_EXTERNAL_LINKS_NEW_TAB', externalLinksNewTab)
$cookies.set('project-layout', projectLayout, parameters)
$cookies.set('search-layout', searchLayout, parameters)
$cookies.set('modpacks-alpha-notice', modpacksAlphaNotice, parameters)
$cookies.set('advanced-rendering', advancedRendering, parameters)
$cookies.set('external-links-new-tab', externalLinksNewTab, parameters)
},
saveSearchDisplayMode({ commit }, { projectType, mode, $cookies }) {
commit('SET_SEARCH_DISPLAY_MODE', { projectType, mode })
$cookies.set('search-display-mode-' + projectType, mode, parameters)
},
}