1 import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core'
2 import { NgbAccordion } from '@ng-bootstrap/ng-bootstrap'
3 import { InstanceService } from './instance.service'
4 import { Notifier } from '@app/core'
5 import { About } from '@shared/models/server'
8 selector: 'my-instance-about-accordion',
9 templateUrl: './instance-about-accordion.component.html',
10 styleUrls: ['./instance-about-accordion.component.scss']
12 export class InstanceAboutAccordionComponent implements OnInit {
13 @ViewChild('accordion', { static: true }) accordion: NgbAccordion
14 @Output() init: EventEmitter<InstanceAboutAccordionComponent> = new EventEmitter<InstanceAboutAccordionComponent>()
28 moderationInformation: '',
33 private instanceService: InstanceService,
34 private notifier: Notifier
38 this.instanceService.getAbout()
43 this.aboutHtml = await this.instanceService.buildHtml(about)
48 err => this.notifier.error(err.message)
52 getAdministratorsPanel () {
53 if (!this.about) return false
54 if (!this.panels.administrators) return false
56 return !!(this.aboutHtml?.administrator || this.about?.instance.maintenanceLifetime || this.about?.instance.businessModel)
59 get moderationPanel () {
60 return this.panels.moderation && !!this.aboutHtml.moderationInformation
63 get codeOfConductPanel () {
64 return this.panels.codeOfConduct && !!this.aboutHtml.codeOfConduct
68 return this.panels.terms && !!this.aboutHtml.terms