/** * Copyright (c) HashiCorp, Inc. * SPDX-License-Identifier: BUSL-1.1 */ import { service } from '@ember/service'; import Component from '@glimmer/component'; import engineDisplayData from 'vault/helpers/engines-display-data'; import type SecretsEngineResource from 'vault/resources/secrets/engine'; import type RouterService from '@ember/routing/router-service'; /** * @module ConfigureTabs handles the display of the ttl picker for the lease duration card in general settings. * * @example * * * @param {object} secretsEngine - secrets engine resource. * @param {boolean} config - config model for the secret engine. */ interface Args { secretsEngine: SecretsEngineResource; config: Record; } export default class ConfigureTabs extends Component { @service declare readonly router: RouterService; get routeName() { if (this.router.currentRouteName === 'vault.cluster.secrets.backend.configuration.edit') { return 'vault.cluster.secrets.backend.configuration.edit'; } return 'vault.cluster.secrets.backend.configuration.plugin-settings'; } get engineRoute() { const engineData = engineDisplayData(this.args?.secretsEngine?.type); const baseUrl = 'vault.cluster.secrets.backend.'; if (this.args?.config && Object.keys(this.args?.config).length > 0) return `${baseUrl}${this.args?.secretsEngine?.type}.configuration`; return `${baseUrl}${engineData?.engineConfigureRoute}`; } get pluginSettingsRoute() { const engineData = engineDisplayData(this.args?.secretsEngine?.type); if (engineData?.engineConfigureRoute) { return this.engineRoute; } return this.routeName; } }