All files / src/components UserList.tsx

100% Statements 5/5
100% Branches 4/4
100% Functions 3/3
100% Lines 5/5

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76                                            16x 16x                   17x                                               2x 2x                                  
import React from 'react';
import {Menu} from 'antd';
import {
  AvatarImageEnum,
  avatarImageMDs,
} from '../utils/pixiUtils/metaData/ImageMetaData';
import '../pages/spacePage/space.css';
 
export interface UserInfo {
  nickname: string;
  avatar: AvatarImageEnum;
  volume: number;
  setVolume: (volumnMultiplyValue: number) => void;
}
 
export interface UsersListProps {
  getUsers: () => UserInfo[];
  onClickPrevious: () => void;
  onChangeVolume: (volume: number) => void;
}
 
export function UserList(props: UsersListProps): JSX.Element {
  const users = props.getUsers();
  return (
    <Menu className="user_drop_down">
      <Menu.Item key="10">
        <div className="users_title">
          <div>사용자</div>
        </div>
      </Menu.Item>
      <Menu.Divider></Menu.Divider>
      {users &&
        users.map((user, idx) => {
          return (
            <Menu.Item key={idx.toString()}>
              <div
                className="user_list"
                key={idx + 1}
                style={{color: '#606060'}}
              >
                <div>
                  <img
                    className="user_list_avatar"
                    src={avatarImageMDs[user.avatar].avatarProfileSrc}
                  ></img>{' '}
                  {user.nickname}
                </div>
                {idx !== 0 ? (
                  <div className="panel_volume">
                    <input
                      role="button"
                      className="panel_volume_bar"
                      type="range"
                      min="0"
                      max="100"
                      value={user.volume * 100}
                      onChange={e => {
                        user.setVolume(Number(e.target.value) * 0.01);
                        props.onChangeVolume(user.volume);
                      }}
                    />
                    <output className="panel_volume_value">
                      {Math.round(user.volume * 100)}
                    </output>
                  </div>
                ) : (
                  <></>
                )}
              </div>
            </Menu.Item>
          );
        })}
    </Menu>
  );
}