From b5aa9e6c5af406a07a6e1a456e1829287e8edc42 Mon Sep 17 00:00:00 2001 From: Leonard Smith Date: Fri, 18 Dec 2020 12:12:32 -0600 Subject: [PATCH] Build a nav-state service to help control visibility of submenus --- app/services/nav-state.js | 56 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 app/services/nav-state.js diff --git a/app/services/nav-state.js b/app/services/nav-state.js new file mode 100644 index 0000000..111f187 --- /dev/null +++ b/app/services/nav-state.js @@ -0,0 +1,56 @@ +import Service from '@ember/service'; +import { tracked } from "@glimmer/tracking"; +import { inject as service } from '@ember/service'; + +export default class NavStateService extends Service { + @service store; + + @tracked book = ''; + @tracked chapter = ''; + @tracked verse = ''; + @tracked chapterNavActive = false; + @tracked verseNaveActive = false; + + setBook(book) { + this.book = book; + this.chapter = ''; + this.verse = ''; + } + + setChapter(chapter) { + this.chapter = chapter; + this.verse = ''; + } + + setVerse(verse) { + this.verse = verse; + } + + toggleChapterNav() { + this.chapterNavActive = !this.chapterNavActive; + } + + toggleVerseNav() { + this.verseNaveActive = !this.verseNaveActive; + } + + isCurrentBook(book) { + return this.book === book; + } + + isCurrentChapter(chapter) { + return this.chapter === chapter; + } + + isCurrentVerse(verse) { + return this.verse === verse; + } + + isChapterNavActive() { + return this.chapterNavActive; + } + + isVerseNavActive() { + return this.verseNaveActive; + } +}