Files
threshold-ui/addons/core/addon/components/session-status/index.js
T
hashicorp-copywrite[bot]andCameron Perera 3d610427d0 [COMPLIANCE] Add Copyright and License Headers (#1617)
* [COMPLIANCE] Add Copyright and License Headers

* chore: 🤖 update Copyright headers to satisfy our lint rules

---------

Co-authored-by: hashicorp-copywrite[bot] <110428419+hashicorp-copywrite[bot]@users.noreply.github.com>
Co-authored-by: Cameron Perera <cameron.perera@hashicorp.com>
2023-03-01 09:39:41 -06:00

45 lines
1.2 KiB
JavaScript

/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
*/
import Component from '@glimmer/component';
const STATUS_MAPPING = {
//map session status to hds text color and icon style
//more info - https://design-system-components-hashicorp.vercel.app/components/badge
active: { color: 'success', icon: 'check', type: 'filled', text: 'Active' },
pending: { color: 'neutral', icon: 'delay', type: 'filled', text: 'Pending' },
canceling: {
color: 'warning',
icon: 'alert-triangle',
type: 'filled',
text: 'Canceling',
},
terminated: {
color: 'critical',
icon: 'x',
type: 'filled',
text: 'Terminated',
},
};
export default class SessionStatus extends Component {
//any status that do not belong in the mapping above, will have a neutral style with outlined badge
get statusBadgeColor() {
return STATUS_MAPPING[this.args.model.status]?.color || 'neutral';
}
get statusBadgeIcon() {
return STATUS_MAPPING[this.args.model.status]?.icon;
}
get statusBadgeType() {
return STATUS_MAPPING[this.args.model.status]?.type || 'outlined';
}
get statusBadgeText() {
return STATUS_MAPPING[this.args.model.status]?.text;
}
}