fix(tui): reduce tab pulse allocations (#39433)
This commit is contained in:
parent
5504245f7b
commit
b47cfbee7c
2 changed files with 57 additions and 12 deletions
|
|
@ -1,5 +1,7 @@
|
|||
import { expect, test } from "bun:test"
|
||||
import { completionPulseOpacity, unreadGlowIntensity } from "../../src/component/tab-pulse"
|
||||
import { RGBA } from "@opentui/core"
|
||||
import { blendTabPulseColor, completionPulseOpacity, unreadGlowIntensity } from "../../src/component/tab-pulse"
|
||||
import { tint } from "../../src/theme/color"
|
||||
|
||||
test("completion pulse rises quickly and fades over the remaining duration", () => {
|
||||
expect(completionPulseOpacity(0)).toBe(0)
|
||||
|
|
@ -24,3 +26,22 @@ test("unread glow reaches the normal background on compact tabs", () => {
|
|||
expect(unreadGlowIntensity(0, 8)).toBe(1)
|
||||
expect(unreadGlowIntensity(7, 8)).toBe(0)
|
||||
})
|
||||
|
||||
test("reuses a color while preserving the original glow and pulse blend stages", () => {
|
||||
const output = RGBA.fromInts(0, 0, 0)
|
||||
const background = RGBA.fromHex("#1a1b26")
|
||||
const glowColor = RGBA.fromHex("#82aaff")
|
||||
const runningColor = RGBA.fromHex("#c8d3f5")
|
||||
const completionColor = RGBA.fromHex("#ff9e64")
|
||||
|
||||
for (const glow of [0, 0.08, 0.16]) {
|
||||
for (const running of [0, 0.01, 0.07, 0.14]) {
|
||||
for (const completion of [0, 0.03, 0.09, 0.18]) {
|
||||
blendTabPulseColor(output, background, glowColor, runningColor, completionColor, glow, running, completion)
|
||||
expect(output.buffer).toEqual(
|
||||
tint(tint(tint(background, glowColor, glow), runningColor, running), completionColor, completion).buffer,
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue