#24 podziel przykłady dla form wymiennych: osobno wymienne, osobno składniki

This commit is contained in:
Andrea Vos 2020-07-27 17:26:40 +02:00
parent 6681469767
commit 7c6bac7379
4 changed files with 36 additions and 12 deletions

View File

@ -1,5 +1,5 @@
<template> <template>
<div v-if="sources.length"> <div v-if="Object.keys(sources).length">
<h2 class="h4"> <h2 class="h4">
<Icon v="books"/> <Icon v="books"/>
Przykłady z literatury, prasy, filmów i seriali: Przykłady z literatury, prasy, filmów i seriali:
@ -7,18 +7,42 @@
<LiteratureMenu/> <LiteratureMenu/>
<ul class="list-unstyled"> <section v-for="(optionSources, option) in sources">
<li v-for="source in sources" class="my-2"> <h3 class="h5">
<Source :name="source"/> <nuxt-link :to="'/' + option">
</li> <span v-if="option.includes('&')">
</ul> Formy wymienne
<small>({{ option.replace(/&/g, ' lub ') }})</small>
</span>
<span v-else>
{{ getTemplate(templates, option).description }}
<small>({{ getTemplate(templates, option).name() }})</small>
</span>
</nuxt-link>
</h3>
<ul class="list-unstyled">
<li v-for="source in optionSources" class="my-2">
<Source :name="source"/>
</li>
</ul>
</section>
</div> </div>
</template> </template>
<script> <script>
import { templates } from "../src/data";
import { getTemplate } from "../src/buildTemplate";
export default { export default {
props: { props: {
sources: { required: true }, sources: { required: true },
},
data() {
return {
templates: templates,
getTemplate: getTemplate,
}
} }
} }
</script> </script>

View File

@ -50,7 +50,7 @@
<Share :title="'Moje zaimki to: ' + selectedTemplate.name()"/> <Share :title="'Moje zaimki to: ' + selectedTemplate.name()"/>
</section> </section>
<section v-if="sources.length"> <section v-if="Object.keys(sources).length">
<Literature :sources="sources"/> <Literature :sources="sources"/>
</section> </section>

View File

@ -133,7 +133,7 @@
<div class="card-footer" v-if="link"> <div class="card-footer" v-if="link">
<LinkInput :link="link"/> <LinkInput :link="link"/>
</div> </div>
<div class="card-body border-top" v-if="sources.length"> <div class="card-body border-top" v-if="Object.keys(sources).length">
<Literature :sources="sources"/> <Literature :sources="sources"/>
</div> </div>
</div> </div>

View File

@ -41,21 +41,21 @@ export const sourcesForMultipleForms = {
export const getSources = (selectedTemplate) => { export const getSources = (selectedTemplate) => {
if (!selectedTemplate) { if (!selectedTemplate) {
return []; return {};
} }
let sources = []; let sources = {};
for (let multiple in sourcesForMultipleForms) { for (let multiple in sourcesForMultipleForms) {
if (sourcesForMultipleForms.hasOwnProperty(multiple)) { if (sourcesForMultipleForms.hasOwnProperty(multiple)) {
if (multiple === selectedTemplate.morphemes.pronoun_n) { if (multiple === selectedTemplate.morphemes.pronoun_n) {
sources = [...sources, ...sourcesForMultipleForms[multiple]] sources[multiple] = sourcesForMultipleForms[multiple];
} }
} }
} }
for (let option of selectedTemplate.nameOptions()) { for (let option of selectedTemplate.nameOptions()) {
const template = getTemplate(templates, option); const template = getTemplate(templates, option);
if (template && template.sources.length) { if (template && template.sources.length) {
sources = [...sources, ...template.sources]; sources[option] = template.sources;
} }
} }
return sources; return sources;