๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

FA/React

20220928 React์—์„œ ์ธ์Šคํƒ€ ์Šคํ† ๋ฆฌ์ฒ˜๋Ÿผ ํ•˜๊ธฐ

 

react-insta-stories

 

mohitk05.github.io

์ธ์Šคํƒ€์Šคํ† ๋ฆฌ์ฒ˜๋Ÿผ ํ‘œํ˜„๊ฐ€๋Šฅํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

 

1. ์„ค์น˜

yarn add react-insta-stories

 

 

GitHub - mohitk05/react-insta-stories: A React component for Instagram like stories

A React component for Instagram like stories. Contribute to mohitk05/react-insta-stories development by creating an account on GitHub.

github.com

 

 import Stories from "react-insta-stories";
 
 const initialStories = [
 //์ด๊ฑธ ์—ฌ๋Ÿฌ๊ฐœ ๋งŒ๋“ค์–ด์„œ ์ธ์Šคํƒ€์Šคํ† ๋ฆฌ ์ฒ˜๋Ÿผ ๋งŒ๋“ค๊ธฐ {} ์•ˆ์— ๋“  ๊ฒƒ
    {
      url: "๋™์˜์ƒ ์ฃผ์†Œ ์œ ํŠญ์€ ์žฌ์ƒ์•ˆ๋Œ",
      // ํƒ€์ž… ๋ฐ”๊ฟ”์„œ ํ…์ŠคํŠธ๋‚˜ ์ด๋ฏธ์ง€ ๋“ฑ ๋‹ค์–‘ํ•˜๊ฒŒ ์‚ฌ์šฉ๊ฐ€๋Šฅ
      type: "video",
      //ํ—ค๋” ์ œ๊ฑฐ ๊ฐ€๋Šฅ
      header: {
        heading: "๋‹‰๋„ค์ž„ ์—ฌ๊ธฐ์—",
        profileImage:
          "ํ”„๋กœํ•„ ์ด๋ฏธ์ง€ url",
      },
    },
  ];
  const [stories, setStories] = React.useState(initialStories);
  return (
    <React.Fragment>
      <Stories
        stories={stories}
        defaultInterval={1500} //ํ•œ ํŽ˜์ด์ง€์—์„œ ๋จธ๋ฌด๋ฅผ ์‹œ๊ฐ„ ์ง€์ •
        width={"100%"}  //๋„“์ด
        height={"80vh"} // ๋†’์ด
        style={{   // ์Šคํƒ€์ผ ๊พธ๋ฏธ๊ธฐ ๊ฐ€๋Šฅ
          display: "flex",
          justifyContent: "center",
          cursor: "pointer",
        }}
        // ๋ฌดํ•œ์žฌ์ƒ
        loop={true} 
        //ํ‚ค๋ณด๋“œ๋กœ ์ด๋™๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•  ๊ฒƒ ์ธ์ง€
        keyboardNavigation={true}
        isPaused={() => {}}
        currentIndex={() => {}}
        onStoryStart={() => {}}   
        // ํ•œํŽ˜์ด์ง€ ๋๋‚ฌ์„๋•Œ ์ฝ˜์†”๋กœ ์ฐ์–ด๋ณด๊ธฐ~
        // onStoryEnd={(s, st) => {       
        //   console.log("story ended", s, st);
        // }}
        onStoryEnd={() => {}}
        onAllStoriesEnd={() => {}}
      />
    </React.Fragment>
  );
};

์ ์šฉํ–‡์„๋•Œ!