mirror of
https://gitlab.com/PronounsPage/PronounsPage.git
synced 2025-09-30 16:44:29 -04:00
98 lines
2.8 KiB
Vue
98 lines
2.8 KiB
Vue
<template>
|
|
<Page>
|
|
<LinksNav v-if="$config.links.enabled" />
|
|
|
|
<h2 class="mb-4">
|
|
<Icon v="map-marker-question" />
|
|
<T>faq.headerLong</T>
|
|
</h2>
|
|
|
|
<section>
|
|
<div class="input-group mb-3 bg-white">
|
|
<span class="input-group-text">
|
|
<Icon v="filter" />
|
|
</span>
|
|
<input ref="filter" v-model="filter" class="form-control border-primary" :placeholder="$t('crud.filterLong')">
|
|
<button v-if="filter" class="btn btn-outline-danger" @click="filter = ''; $refs.filter.focus()">
|
|
<Icon v="times" />
|
|
</button>
|
|
</div>
|
|
</section>
|
|
|
|
<details v-show="!filter || $t('home.mission.header').toLowerCase().includes(filter.toLowerCase())" class="border mb-3" open>
|
|
<summary class="d-none"></summary>
|
|
<div class="px-3">
|
|
<Mission />
|
|
</div>
|
|
</details>
|
|
|
|
<AdPlaceholder :phkey="['content-0', 'content-mobile-0']" />
|
|
|
|
<section itemscope itemtype="https://schema.org/FAQPage">
|
|
<Answer
|
|
v-for="question in Object.keys($t('faq.questions'))"
|
|
v-show="!filter ||
|
|
$t(`faq.questions.${question}.question`).toLowerCase().includes(filter.toLowerCase()) ||
|
|
$t(`faq.questions.${question}.answer`).join('|').toLowerCase().includes(filter.toLowerCase())"
|
|
:id="question"
|
|
:key="question"
|
|
:ref="question.replace(/-/g, '_')"
|
|
:question="question"
|
|
@click="setHash('', question)"
|
|
/>
|
|
</section>
|
|
|
|
<AdPlaceholder :phkey="['content-1', 'content-mobile-1']" />
|
|
|
|
<section>
|
|
<Share :title="$t('faq.headerLong')" />
|
|
</section>
|
|
</Page>
|
|
</template>
|
|
|
|
<script>
|
|
import { head } from '../src/helpers.ts';
|
|
import hash from '../plugins/hash.ts';
|
|
|
|
export default hash.extend({
|
|
data() {
|
|
return {
|
|
filter: '',
|
|
};
|
|
},
|
|
head() {
|
|
return head({
|
|
title: this.$t('faq.headerLong'),
|
|
}, this.$translator);
|
|
},
|
|
mounted() {
|
|
this.handleHash('', (hash) => {
|
|
const $component = this.$refs[hash.replace(/-/g, '_')];
|
|
if (!$component) {
|
|
return;
|
|
}
|
|
const $el = $component[0].$el;
|
|
$el.open = true;
|
|
$el.focus();
|
|
$el.scrollIntoView();
|
|
setTimeout((_) => {
|
|
$el.scrollIntoView();
|
|
}, 1000);
|
|
}, false);
|
|
},
|
|
});
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
@import "assets/variables";
|
|
|
|
details {
|
|
summary {
|
|
font-weight: bold;
|
|
}
|
|
&[open] {
|
|
box-shadow: $box-shadow;
|
|
}
|
|
}
|
|
</style>
|