diff --git a/package.json b/package.json index d22f40c..98b58c0 100644 --- a/package.json +++ b/package.json @@ -20,6 +20,7 @@ "firebase": "^10.3.0", "ga-4-react": "^0.1.281", "react": "^18.2.0", + "react-colorful": "^5.6.1", "react-dom": "^18.2.0", "react-screen-wake-lock": "^3.0.2", "react-swipeable": "^7.0.1", diff --git a/src/Components/Buttons/LoseButton.tsx b/src/Components/Buttons/LoseButton.tsx index 8a2f039..c405dda 100644 --- a/src/Components/Buttons/LoseButton.tsx +++ b/src/Components/Buttons/LoseButton.tsx @@ -7,7 +7,7 @@ const LoseButton = twc.div((props) => [ 'absolute flex-grow border-none outline-none cursor-pointer bg-interface-loseButton-background rounded-lg select-none z-[1] webkit-user-select-none py-2 px-4 ', props.$rotation === Rotation.SideFlipped || props.$rotation === Rotation.Side - ? `left-[19%]` + ? `left-[21%]` : 'top-[21%]', ]); diff --git a/src/Components/Player/PlayerMenu.tsx b/src/Components/Player/PlayerMenu.tsx index efbf039..4fad7c2 100644 --- a/src/Components/Player/PlayerMenu.tsx +++ b/src/Components/Player/PlayerMenu.tsx @@ -5,6 +5,7 @@ import { theme } from '../../Data/theme'; import { useGlobalSettings } from '../../Hooks/useGlobalSettings'; import { usePlayers } from '../../Hooks/usePlayers'; import { useSafeRotate } from '../../Hooks/useSafeRotate'; +import { HexColorPicker } from 'react-colorful'; import { Energy, Exit, @@ -65,17 +66,12 @@ const ButtonsSections = twc.div` flex-wrap `; -const ColorPicker = twc.input` +const ColorPicker = twc.button` h-[8vmax] w-[8vmax] max-h-12 - max-w-11 - border-none - outline-none - cursor-pointer - bg-transparent - user-select-none - text-common-white + max-w-12 + rounded-full `; const SettingsContainer = twc.div((props) => [ @@ -97,7 +93,8 @@ const PlayerMenu = ({ isShown, }: PlayerMenuProps) => { const settingsContainerRef = useRef(null); - const dialogRef = useRef(null); + const resetGameDialogRef = useRef(null); + const colorPickerDialogRef = useRef(null); const { isSide } = useSafeRotate({ rotation: player.settings.rotation, @@ -107,8 +104,8 @@ const PlayerMenu = ({ const { fullscreen, wakeLock, goToStart } = useGlobalSettings(); const { updatePlayer, resetCurrentGame } = usePlayers(); - const handleColorChange = (event: React.ChangeEvent) => { - const updatedPlayer = { ...player, color: event.target.value }; + const handleColorChange = (newColor: string) => { + const updatedPlayer = { ...player, color: newColor }; updatePlayer(updatedPlayer); }; @@ -162,12 +159,11 @@ const PlayerMenu = ({ colorPickerDialogRef.current?.show()} aria-label="Color picker" /> + {/* */} {player.settings.useCommanderDamage && ( )} - - - dialogRef.current?.show()} + onClick={() => resetGameDialogRef.current?.show()} role="checkbox" aria-checked={wakeLock.active} aria-label="Reset Game" @@ -341,30 +334,46 @@ const PlayerMenu = ({ resetGameDialogRef.current?.close()} > -
-

Reset Game?

-
- - +
+
+

Reset Game?

+
+ + +
+ colorPickerDialogRef.current?.close()} + > +
+ +
+
); diff --git a/yarn.lock b/yarn.lock index 2deaaa0..10d7908 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7102,6 +7102,11 @@ re2@^1.17.7: nan "^2.18.0" node-gyp "^10.0.1" +react-colorful@^5.6.1: + version "5.6.1" + resolved "https://registry.yarnpkg.com/react-colorful/-/react-colorful-5.6.1.tgz#7dc2aed2d7c72fac89694e834d179e32f3da563b" + integrity sha512-1exovf0uGTGyq5mXQT0zgQ80uvj2PCwvF8zY1RN9/vbJVSjSo3fsB/4L3ObbF7u70NduSiK4xu4Y6q1MHoUGEw== + react-dom@^18.2.0: version "18.2.0" resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d"