Telegram Web K with changes to work inside I2P
https://web.telegram.i2p/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.6 KiB
55 lines
1.6 KiB
/* |
|
* https://github.com/morethanwords/tweb |
|
* Copyright (C) 2019-2021 Eduard Kuzmenko |
|
* https://github.com/morethanwords/tweb/blob/master/LICENSE |
|
*/ |
|
|
|
import RLottieIcon from '../../lib/rlottie/rlottieIcon'; |
|
import {GROUP_CALL_PARTICIPANT_CLEARED_MUTED_STATE, GROUP_CALL_PARTICIPANT_MUTED_STATE, getColorByMutedState, clearMutedStateModifier} from '.'; |
|
import {SuperRLottieIcon} from '../superIcon'; |
|
|
|
export default class GroupCallParticipantMutedIcon extends SuperRLottieIcon<{ |
|
PartState: GROUP_CALL_PARTICIPANT_CLEARED_MUTED_STATE, |
|
ColorState: GROUP_CALL_PARTICIPANT_MUTED_STATE |
|
}> { |
|
constructor(private colored: boolean) { |
|
super({ |
|
width: 32, |
|
height: 32, |
|
getPart: (state, prevState) => { |
|
const states = GROUP_CALL_PARTICIPANT_MUTED_STATE; |
|
|
|
let index: number; |
|
switch(state) { |
|
case states.HAND: |
|
index = 3; |
|
break; |
|
case states.MUTED: |
|
index = prevState === states.HAND ? 0 : 2; |
|
break; |
|
case states.UNMUTED: |
|
index = 1; |
|
break; |
|
} |
|
|
|
return this.getItem().getPart(index); |
|
}, |
|
getColor: colored ? (state, prevState) => { |
|
return getColorByMutedState(state); |
|
} : undefined |
|
}); |
|
|
|
const className = 'group-call-participant-muted-icon'; |
|
this.container.classList.add(className + '-container'); |
|
|
|
const parts = RLottieIcon.generateEqualParts(4, 21); |
|
this.add({ |
|
name: 'voice_outlined2', |
|
parts |
|
}); |
|
} |
|
|
|
public setState(state: GROUP_CALL_PARTICIPANT_MUTED_STATE) { |
|
return super.setState(clearMutedStateModifier(state), state); |
|
} |
|
}
|
|
|