roulette-img
TypeScript icon, indicating that this package has built-in type declarations

0.3.9ย โ€ขย Publicย โ€ขย Published

roulette-img ์‚ฌ์šฉ ๊ฐ€์ด๋“œ ๐Ÿงšโ€โ™€๏ธ


ํ•„์š”์†Œ์Šค
  • ๋ฃฐ๋ › ์ด๋ฏธ์ง€ (ํ™•์žฅ์ž: png)
  • ํ•€ ์ด๋ฏธ์ง€

์ด๋ฏธ์ง€ ์ค€๋น„

  • ๋ฃฐ๋ › ์ด๋ฏธ์ง€ ์ด๋ฆ„์€ ์ด๋ฏธ์ง€์ด๋ฆ„-์ด๋ฏธ์ง€๋ฒˆํ˜ธ.png ex) rouletteImg-2.png , ์—ฌ๊ธฐ์„œ ์ด๋ฏธ์ง€ ๋ฒˆํ˜ธ๋Š” ๋ฃฐ๋ ›์˜ ์นธ ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋ƒ„.
  • ์ด๋ฏธ์ง€ ๋ชจ์–‘
์‚ฌ์ง„1 ์‚ฌ์ง„2 ์‚ฌ์ง„3 ์‚ฌ์ง„4 ์‚ฌ์ง„5
์œ„์˜ ๋ฃฐ๋ › ๋ชจ์–‘์ฒ˜๋Ÿผ ๋ฃฐ๋ ›์˜ ์ฒซ๋ฒˆ์งธ ์š”์†Œ๊ฐ€ ์ •์ค‘์•™์— ์œ„์น˜ํ•ด์•ผํ•จ.
  • ํ•€ ์ด๋ฏธ์ง€ ํ•€ ์˜ˆ์‹œ ์ด๋ฏธ์ง€ ์ž…๋‹ˆ๋‹ค.

์„ค์น˜ ๋ฐ ์ž„ํฌํŠธ

npm i roulette-img
import { Roulette } from "roulette-img";

์‚ฌ์šฉ๋ฒ•

//ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ ์ •๋ฆฌ
export interface Roulette {
  imgUrl: string; //ํ•„์ˆ˜๊ฐ’
  arrowImgUrl: string; //ํ•„์ˆ˜๊ฐ’
  chunkRange: ChunkRange; //ํ•„์ˆ˜๊ฐ’
  chunk?: number;
  arrowPosition?: Arrow;
  winNumber?: winNumber;
  buttonText?: string;
  buttonShape?: ButtonShape;
  buttonStyle?: React.ReactNode; // ํƒœ๊ทธ๋ฅผ ๋ฆฌํ„ด๊ฐ’์œผ๋กœ ๋ณด๋‚ด ๋ฒ„ํŠผ์„ ์ปค์Šคํ„ฐ๋งˆ์ด์ง• ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
  onWin?: (winNumber: number | null) => void;
}
//ํ•„์š”ํ•œ ๊ณ ์ • ์ปดํฌ๋„ŒํŠธ ์ž…๋‹ˆ๋‹ค
<Roulette
  imgUrl="/assets/bg_circle-" //๋ฒˆํ˜ธ์™€ ํ™•์žฅ์ž๋ฅผ ์ œ์™ธํ•œ "-"๊นŒ์ง€ ์ ์–ด์ฃผ์„ธ์š”
  arrowImgUrl="/assets/arrow.png"
  chunkRange={{ start: 2, end: 6 }} //์ค€๋น„ํ•œ ๋ฃฐ๋ › ์ด๋ฏธ์ง€์˜ ์ตœ์†Œ ์นธ๊ณผ ์ตœ๋Œ€ ์นธ์„ ์ ์–ด์ฃผ์„ธ์š”
></Roulette>
//์„ ํƒ ์ปดํฌ๋„ŒํŠธ ์ž…๋‹ˆ๋‹ค
<Roulette
  imgUrl="/assets/bg_circle-" //๋ฒˆํ˜ธ์™€ ํ™•์žฅ์ž๋ฅผ ์ œ์™ธํ•œ "-"๊นŒ์ง€ ์ ์–ด์ฃผ์„ธ์š”
  arrowImgUrl="/assets/arrow.png"
  chunkRange={{ start: 2, end: 6 }} //์ค€๋น„ํ•œ ๋ฃฐ๋ › ์ด๋ฏธ์ง€์˜ ์ตœ์†Œ ์นธ๊ณผ ์ตœ๋Œ€ ์นธ์„ ์ ์–ด์ฃผ์„ธ์š”
  chunk = 3 //๋ฃฐ๋ ›์˜ ์นธ | ๊ธฐ๋ณธ๊ฐ’:chunkRange.start | [chunkRange์˜" ๋ฒ”์œ„]
  arrowPosition = "up" //ํ•€์˜ ์œ„์น˜ | ๊ธฐ๋ณธ๊ฐ’ :"up" | ["up","down","left","right]
  winNumber //๋‹น์ฒจ ๋ฒˆํ˜ธ | ๊ธฐ๋ณธ๊ฐ’: ๋žœ๋ค | [chunkRange์˜" ๋ฒ”์œ„]
  buttonText = "start" //๋ฒ„ํŠผํ…์ŠคํŠธ | ๊ธฐ๋ณธ๊ฐ’: start
  buttonShape = "round" //๋ฒ„ํŠผ ๋ชจ์–‘ | ๊ธฐ๋ณธ๊ฐ’: round | [round,squre]
></Roulette>

์„ค์ •์— ๋”ฐ๋ฅธ ๋ชจ์–‘

<Roulette
  imgUrl="/assets/bg_circle-"
  arrowImgUrl="/assets/arrow.png"
  chunkRange={{ start: 2, end: 6 }}
  chunk = 2
  arrowPosition = "up" //ํ•€์˜ ์œ„์น˜ | ๊ธฐ๋ณธ๊ฐ’ :"up" | ["up","down","left","right]
  buttonText = "start" //๋ฒ„ํŠผํ…์ŠคํŠธ | ๊ธฐ๋ณธ๊ฐ’: start
  buttonShape = "round" //๋ฒ„ํŠผ ๋ชจ์–‘ | ๊ธฐ๋ณธ๊ฐ’: round | [round,squre]
></Roulette>

๋ผ์šด๋“œ๋ฒ„ํŠผ

<Roulette
  imgUrl="/assets/bg_circle-"
  arrowImgUrl="/assets/arrow.png"
  chunkRange={{ start: 2, end: 6 }}
  chunk = 4
  arrowPosition = "left" //ํ•€์˜ ์œ„์น˜ | ๊ธฐ๋ณธ๊ฐ’ :"up" | ["up","down","left","right]
  winNumber={{number:4,option:"none"}} //๋‹น์ฒจ ๋ฒˆํ˜ธ | ๊ธฐ๋ณธ๊ฐ’: ๋žœ๋ค | [chunkRange์˜" ๋ฒ”์œ„]
  buttonText = "start" //๋ฒ„ํŠผํ…์ŠคํŠธ | ๊ธฐ๋ณธ๊ฐ’: start
  buttonShape = "square" //๋ฒ„ํŠผ ๋ชจ์–‘ | ๊ธฐ๋ณธ๊ฐ’: round | [round,squre]
></Roulette>

์Šคํ€˜์–ด


์Šคํƒ€์ผ๋ง ๋ณ€๊ฒฝ

๋ฃฐ๋ › ์ด๋ฏธ์ง€ - .roulette ํ•€ ์ด๋ฏธ์ง€ - .arrow ์Šคํƒ€ํŠธ ๋ฒ„ํŠผ - .start-button

  .start-button {
    color: yellow;
    background-color: red;
  }

์Šคํƒ€์ผ๋ณ€๊ฒฝ

version 0.3.0 ์ถ”๊ฐ€ ๊ธฐ๋Šฅ

  1. ๋‹น์ฒจ ๋ฒˆํ˜ธ ์ฝœ๋ฐฑ ํ•จ์ˆ˜
const [winNumber, setWinNumber] = useState(0);

const getWinNumber = (number: number) => {
  setWinNumber(number);
};

<Roulette
  imgUrl="/assets/bg_circle-"
  arrowImgUrl="/assets/arrow.png"
  chunkRange={{ start: 2, end: 6 }}
  onWin={getWinNumber}
></Roulette>;
  • ์œ„์™€ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ๋‹น์ฒจ ๋ฒˆํ˜ธ๋ฅผ ์ปจํŠธ๋กคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  1. ๋ฒ„ํŠผ ์ปค์Šคํ…€ ๊ธฐ๋Šฅ
<Roulette
  imgUrl="/assets/bg_circle-"
  arrowImgUrl="/assets/arrow.png"
  chunkRange={{ start: 2, end: 6 }}
  buttonStyle={
    <>
      <button>hello</button>
    </>
  }
></Roulette>
  • ์œ„์™€ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ๊ณ ์ • ๋ฒ„ํŠผ์ด ์•„๋‹Œ ์ง์ ‘ ๋ฒ„ํŠผ์„ ์ปค์Šคํ…€ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์šฐ์„ ์ˆœ์œ„ buttonText,buttonShape < button.style

version 0.3.2 ์ถ”๊ฐ€ ๊ธฐ๋Šฅ

๋‹น์ฒจ๋ฒˆํ˜ธ๋ฅผ ์™ธ๋ถ€ api์—์„œ ๋ฐ›์•„์˜จ ํ›„ ๋„˜๊ธธ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

//ํƒ€์ž…์ด ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
export interface Roulette {
  ...
  winNumber?: number | null;
  drivingType?: winNumberOption;
  ...
}


export type winNumberOption = "async" | undefined;
//async์˜ต์…˜์€ ์™ธ๋ถ€ api์—์„œ ๋‹น์ฒจ๋ฒˆํ˜ธ๋ฅผ ๋ฐ›์•„์™€ ์‚ฌ์šฉํ• ๋•Œ - buttonStyle์˜ต์…˜์„ ์‚ฌ์šฉํ•ด ์ปค์Šคํ„ฐ๋งˆ์ด์ง• ๋ฒ„ํŠผ์„ ๋งŒ๋“ ํ›„ ์ง์ ‘ api์™€ ์—ฐ๊ฒฐํ•ด์ฃผ์„ธ์š”
  const [winNumber, setWinNumber] = useState<number | null>(null);

  const clickButton = () => {
    setWinNumber(null); // null๋กœ ์ดˆ๊ธฐํ™”๋ฅผ ํ•˜๋ฉด ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅผ๋•Œ๋งˆ๋‹ค ๋ฃฐ๋ › ๋Œ์•„๊ฐ ์•„๋‹์‹œ ํ•œ๋ฒˆ๋งŒ ๋Œ์•„๊ฐ
    setTimeout(() => {
      setWinNumber(2);
    }, 3000);
  };

  return (
    <div className="App">
    //์™ธ๋ถ€ API์—์„œ ๋‹น์ฒจ๊ฐ’์„ ๋ฐ›์•„ ๋ณด๋‚ผ๋•Œ
      <Roulette
        imgUrl="/assets/bg_circle-"
        arrowImgUrl="/assets/arrow.png"
        chunkRange={{ start: 2, end: 6 }}
        winNumber={winNumber}
        drivingType="async"
        buttonStyle={
          <>
            <button onClick={clickButton}>hello</button>
          </>
        }
      ></Roulette>
      //์ง์ ‘ ๊ฐ’์„ ์„ ์–ธ
      <Roulette
        imgUrl="/assets/bg_circle-"
        arrowImgUrl="/assets/arrow.png"
        chunkRange={{ start: 2, end: 6 }}
        winNumber={2}
        chunk={4}
        arrowPosition="left"
        buttonShape="squre"
      ></Roulette>
    //๋žœ๋ค๊ฐ’
      <Roulette
        imgUrl="/assets/bg_circle-"
        arrowImgUrl="/assets/arrow.png"
        chunkRange={{ start: 2, end: 6 }}
        chunk={6}
        arrowPosition="right"
      ></Roulette>
      );

Package Sidebar

Install

npm i roulette-img

Weekly Downloads

3

Version

0.3.9

License

none

Unpacked Size

16.8 kB

Total Files

10

Last publish

Collaborators

  • su-vin