* Add back stream idle mode
* Shut up codespell
* Correct serialization; only expose at user level
* cargo fmt
* tsc lint fmt
* Move engineStreamMachine as a global actor; tons of more work
* Fix up everything after bumping kittycad/lib
* Remove camera sync
* Use pause/play iconology
* Add back better ping indicator
* wip
* Fix streamIdleMode checkbox being wonky
* yarn fmt
* Massive extinction event for waitForExecutionDone; try to stop projects view switching from crashing
* Clear diagnostics when unmounting code editor!
* wip
* Rework initial root projects dir + deflake many projects tests
* More e2e fixes
* Deflake revolve some revolve tests
* Fix the rest of the mfing tests
* yarn fmt
* yarn lint
* yarn tsc
* Fix tsc after rebase
* wip
* less flaky point and click
* wip
* Fixup after rebase
* Fix more tests
* Fix 2 more
* Fix up named-views tests
* yarn fmt lint tsc
* Fix up new changes
* Get rid of 1 cyclic dependency
* Fix another cyclic mfer!
* fmt
* fmt tsc
* Fix zoom to fit being frigged
* a new list of circular deps
* Remove NetworkHealthIndicator test that was shit
* Fix the bad reload repeat issue kevin started on
* Fix zoom to fit at the right moments...
* Fix cache count numbers in editor test
* Remove a test race - poll window info.
* Qualify fail function
* Try something
* Use scene.connectionEstablished
* Hopefully fix snapshots at least
* Add app console.log
* Fix native menu tests more
* tsc lint
* Fix camera failure
* Try again
* Test attempt number 15345203, action!
* Add back old window detection heuristic
* Remove firstWindow to complete the work of 2342d04fe2
* Tweak some tests for MacOS
* Tweak "set appearance" test for MacOS
Revert this if it messes up any other platform's color checks!
* Are you serious? This was all that needed formatting?
* More color tweaks
Local MacOS and CI MacOS don't agree
* Fixes on apperance e2e test for stream idle branch (#6168)
pierremtb/stream-idle-revamp-appearance-fixes
* Another apperance fix
* Skip one native menu test to make stream idle green (#6169)
* pierremtb/stream-idle-revamp-more-fixes
* Fix lint
* Update snapshot for test_generate_settings_docs
---------
Co-authored-by: lee-at-zoo-corp <lee@zoo.dev>
Co-authored-by: Frank Noirot <frankjohnson1993@gmail.com>
Co-authored-by: Pierre Jacquier <pierrejacquier39@gmail.com>
Co-authored-by: Pierre Jacquier <pierre@zoo.dev>
53 lines
1.4 KiB
TypeScript
53 lines
1.4 KiB
TypeScript
import { engineStreamActor } from '@src/machines/appMachine'
|
|
import { EngineStreamState } from '@src/machines/engineStreamMachine'
|
|
import { useSelector } from '@xstate/react'
|
|
|
|
import { faPause, faPlay, faSpinner } from '@fortawesome/free-solid-svg-icons'
|
|
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
|
|
|
|
export const ModelStateIndicator = () => {
|
|
const engineStreamState = useSelector(engineStreamActor, (state) => state)
|
|
|
|
let className = 'w-6 h-6 '
|
|
let icon = <div className={className}></div>
|
|
let dataTestId = 'model-state-indicator'
|
|
|
|
if (engineStreamState.value === EngineStreamState.Paused) {
|
|
className += 'text-secondary'
|
|
icon = (
|
|
<FontAwesomeIcon
|
|
data-testid={dataTestId + '-paused'}
|
|
icon={faPause}
|
|
width="20"
|
|
height="20"
|
|
/>
|
|
)
|
|
} else if (engineStreamState.value === EngineStreamState.Playing) {
|
|
className += 'text-secondary'
|
|
icon = (
|
|
<FontAwesomeIcon
|
|
data-testid={dataTestId + '-playing'}
|
|
icon={faPlay}
|
|
width="20"
|
|
height="20"
|
|
/>
|
|
)
|
|
} else {
|
|
className += 'text-secondary'
|
|
icon = (
|
|
<FontAwesomeIcon
|
|
data-testid={dataTestId + '-resuming'}
|
|
icon={faSpinner}
|
|
width="20"
|
|
height="20"
|
|
/>
|
|
)
|
|
}
|
|
|
|
return (
|
|
<div className={className} data-testid="model-state-indicator">
|
|
{icon}
|
|
</div>
|
|
)
|
|
}
|