import { Fragment } from "react/jsx-runtime"; import { lootboxes } from "../../../shared/lootboxes"; import { Button } from "../../components/Button"; import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogTrigger, } from "../../components/Dialog"; import GemsIcon from "../../components/GemIcon"; import { themes } from "../../themes"; import { useWSMutation, useWSQuery } from "../../hooks"; import { Rarity } from "../../components/Rarity"; import { lootboxResultAtom } from "../../atoms"; import { useAtom } from "jotai"; import { useEffect } from "react"; import { initParticlesEngine, Particles as ParticlesComponent } from "@tsparticles/react"; import { motion } from "motion/react"; import BounceImg from "../../components/BounceImg"; import RegisterButton from "../../components/Auth/RegisterButton"; const Store = () => { const openLootbox = useWSMutation("user.openLootbox"); const [lootboxResult, setLootboxResult] = useAtom(lootboxResultAtom); const currentLootbox = lootboxes.find((l) => l.id === lootboxResult?.lootbox); const { data: username } = useWSQuery("user.getSelf", null); const { refetch } = useWSQuery("user.getOwnGems", null); // this should be run only once per application lifetime useEffect(() => { const cb = async () => { const { loadSlim } = await import("@tsparticles/slim"); const { loadSeaAnemonePreset } = await import("@tsparticles/preset-sea-anemone"); initParticlesEngine(async (engine) => { // you can initiate the tsParticles instance (engine) here, adding custom shapes or presets // this loads the tsparticles package bundle, it's the easiest method for getting everything ready // starting from v2 you can add only the features you need reducing the bundle size //await loadAll(engine); //await loadFull(engine); await loadSlim(engine); await loadSeaAnemonePreset(engine); //await loadBasic(engine); }); }; cb(); }, []); return ( <> setLootboxResult(undefined)} > Opening {currentLootbox?.name}
i.id == lootboxResult?.result, )?.rarity } > {themes.find((t) => t.id === lootboxResult?.result)?.name}

Store

{lootboxes.map((lootbox) => (

{lootbox.name}

{lootbox.name}
Introducing {lootbox.name}, the first-ever lootbox for Minesweeper, packed with a variety of stylish skins to customize your game like never before! With {lootbox.name}, every click becomes a statement, as you explore new looks for your mines, tiles, and flags. Transform your Minesweeper grid with these visually captivating designs and make each puzzle feel fresh and exciting.

What's Inside?

  • Mine Skins: Swap out the classic mine icons for creative alternatives like skulls, treasure chests, or high-tech drones.
  • Tile Skins: Replace the plain tiles with vibrant patterns such as tropical beaches, medieval bricks, or sleek metallic plates.
  • Flag Skins: Mark suspected mines in style with custom flag designs including pirate flags, futuristic beacons, or glowing crystals.
  • Backgrounds: Enhance your gameplay experience with unique backgrounds, from serene mountain landscapes to bustling cityscapes or outer space vistas.
  • Step up your Minesweeper game and express your personality with {lootbox.name}. Unlock new looks and turn every game into a visual masterpiece!
Skin
Rarity
{lootbox.items.map((item) => (
{themes.find((t) => t.id === item.id)?.name}
))}
{username ? ( ) : (
)}
))}
); }; export default Store;