mirror of
https://github.com/Instadapp/assembly.git
synced 2024-07-29 22:37:06 +00:00
53 lines
1.5 KiB
TypeScript
53 lines
1.5 KiB
TypeScript
|
import { computed } from '@nuxtjs/composition-api'
|
||
|
import { useBigNumber } from './useBigNumber'
|
||
|
const { lt, gte, lte, isZero } = useBigNumber()
|
||
|
|
||
|
const colorValues = [
|
||
|
{ minValue: 1.0, color: 'red-dark' },
|
||
|
{ minValue: 0.9, color: 'red' },
|
||
|
{ minValue: 0.85, color: 'passion-orange' },
|
||
|
{ minValue: 0.8, color: 'orange' },
|
||
|
{ minValue: 0.75, color: 'yellow' },
|
||
|
{ minValue: 0.0, color: 'green-pure' },
|
||
|
]
|
||
|
|
||
|
const textValues = [
|
||
|
{ minValue: 1, text: 'Liquidate' },
|
||
|
{ minValue: 0.9, text: 'Very Risky' },
|
||
|
{ minValue: 0.75, text: 'Risky' },
|
||
|
{ minValue: 0, text: 'Safe' },
|
||
|
]
|
||
|
|
||
|
export function useStatus(statusLiquidationRatioRef, statusRef, liquidationRef) {
|
||
|
const color = computed(() => {
|
||
|
if (!isZero(statusRef) && !isZero(liquidationRef)) {
|
||
|
if (gte(statusRef.value, '1')) return 'red-dark'
|
||
|
}
|
||
|
|
||
|
if (lte(statusLiquidationRatioRef.value, '0')) return 'grey'
|
||
|
const colorValue = colorValues.find((colorValue) => gte(statusLiquidationRatioRef.value, colorValue.minValue))
|
||
|
|
||
|
return colorValue.color
|
||
|
})
|
||
|
|
||
|
const text = computed(() => {
|
||
|
if (!isZero(statusRef) && !isZero(liquidationRef)) {
|
||
|
if (gte(statusRef.value, '1')) return 'Liquidate'
|
||
|
}
|
||
|
|
||
|
if (lte(statusLiquidationRatioRef.value, '0')) return 'No position'
|
||
|
|
||
|
const textValue = textValues.find((textValue) => gte(statusLiquidationRatioRef.value, textValue.minValue))
|
||
|
|
||
|
if (!textValue) return 'No position'
|
||
|
|
||
|
return textValue.text
|
||
|
})
|
||
|
|
||
|
return { color, text }
|
||
|
}
|
||
|
|
||
|
export function getSlippageBadgeColor(value) {
|
||
|
return lt(value, '0.02') ? 'green' : 'red'
|
||
|
}
|