forked from coracle/flotilla
0d61278c56
Co-authored-by: userAdityaa <aditya.chaudhary1558@gmail.com> Co-committed-by: userAdityaa <aditya.chaudhary1558@gmail.com>
35 lines
1008 B
Svelte
35 lines
1008 B
Svelte
<script lang="ts">
|
|
import cx from "classnames"
|
|
import MicrophoneOff from "@assets/icons/microphone-off.svg?dataurl"
|
|
import VideocameraOff from "@assets/icons/videocamera-off.svg?dataurl"
|
|
import Icon from "@lib/components/Icon.svelte"
|
|
|
|
type Props = {
|
|
muted: boolean
|
|
cameraOn: boolean
|
|
showCamera?: boolean
|
|
size?: number
|
|
class?: string
|
|
}
|
|
|
|
const {muted, cameraOn, showCamera = true, size = 3, class: className = ""}: Props = $props()
|
|
|
|
const badgeClass =
|
|
"inline-flex size-4 shrink-0 items-center justify-center rounded bg-base-100/80 p-0.5 text-error"
|
|
</script>
|
|
|
|
{#if muted || (showCamera && !cameraOn)}
|
|
<div class={cx("flex items-center gap-1", className)}>
|
|
{#if muted}
|
|
<span class={badgeClass} aria-label="Muted">
|
|
<Icon icon={MicrophoneOff} {size} />
|
|
</span>
|
|
{/if}
|
|
{#if showCamera && !cameraOn}
|
|
<span class={badgeClass} aria-label="Camera off">
|
|
<Icon icon={VideocameraOff} {size} />
|
|
</span>
|
|
{/if}
|
|
</div>
|
|
{/if}
|