From 358b539199a2c23e2367e8810f0760c69d5e59bb Mon Sep 17 00:00:00 2001 From: gkswldnjs78 Date: Tue, 21 Nov 2023 00:24:56 +0900 Subject: [PATCH 1/4] =?UTF-8?q?=EB=B7=B0=20=EC=B6=94=EA=B0=80=20=EC=9E=91?= =?UTF-8?q?=EC=97=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 +- src/assets/main-logo.png | Bin 0 -> 15891 bytes src/component/AllFrameCpn/FrameList.jsx | 4 ++-- src/pages/Main/Main.jsx | 13 ++++++++----- src/pages/Main/Main.module.scss | 10 ++++++++++ 5 files changed, 21 insertions(+), 8 deletions(-) create mode 100644 src/assets/main-logo.png diff --git a/package.json b/package.json index b2990dc..4a0654b 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "build": "vite build", "lint": "eslint . --ext js,jsx --report-unused-disable-directives --max-warnings 0", "preview": "vite preview", - "deploy": "aws s3 sync ./build s3://picpic-bucket --profile=jwhan" + "deploy": "npm run build && aws s3 sync dist/ s3://picpic-bucket --delete" }, "dependencies": { "@reduxjs/toolkit": "^1.9.7", diff --git a/src/assets/main-logo.png b/src/assets/main-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..666192fa25f5c6748f353c741a299f81de5b5c97 GIT binary patch literal 15891 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 { async function fetchFrames() { try { const apiURL = - "http://ec2-3-35-208-177.ap-northeast-2.compute.amazonaws.com:8080/frame/get/frame"; + "http://ec2-3-35-208-177.ap-northeast-2.compute.amazonaws.com:8080/frame/frameList"; // 토큰을 헤더에 추가하여 이미지 리스트 요청 const res = await axios.get(apiURL, { headers: { - Authorization: accessToken, + Authorization: `Bearer ${accessToken}`, }, }); diff --git a/src/pages/Main/Main.jsx b/src/pages/Main/Main.jsx index 9c5028b..ef7d98b 100644 --- a/src/pages/Main/Main.jsx +++ b/src/pages/Main/Main.jsx @@ -1,12 +1,15 @@ -import styles from './Main.module.scss' -import { Link } from 'react-router-dom' +import styles from "./Main.module.scss"; +import { Link } from "react-router-dom"; +import main_logo from "../../assets/main-logo.png"; export default function Login() { return ( <> - - + + ); -} \ No newline at end of file +} diff --git a/src/pages/Main/Main.module.scss b/src/pages/Main/Main.module.scss index e69de29..4ab1833 100644 --- a/src/pages/Main/Main.module.scss +++ b/src/pages/Main/Main.module.scss @@ -0,0 +1,10 @@ +.linkBtn { + background-color: #ffffff; + border: none; + + img { + width: 50%; + height: 50%; + display: inline-flex; + } +} From a1c5fe233a2c160fdf1dbca1c187b6624f3dcd60 Mon Sep 17 00:00:00 2001 From: gkswldnjs78 Date: Tue, 21 Nov 2023 12:21:13 +0900 Subject: [PATCH 2/4] Github Actions --- .github/workflows/deploy.yaml | 40 +++++++++++++++++ src/assets/frame-F1FFAD.png | Bin 17053 -> 17223 bytes src/assets/frame-FFFDBA.png | Bin 17288 -> 17271 bytes src/component/AllFrameCpn/FrameList.jsx | 37 +++++++++------ .../AllFrameCpn/FrameList.module.css | 42 ++++++++++++++++++ .../MakeFrameCpn/Background.module.css | 10 ++--- src/component/MakeFrameCpn/Sticker.jsx | 2 +- src/component/MakeFrameCpn/Template.jsx | 7 +-- .../MakeFrameCpn/Template.module.css | 3 ++ src/pages/Frame/Frame.jsx | 7 --- src/pages/Frame/Frame.module.css | 2 +- 11 files changed, 116 insertions(+), 34 deletions(-) create mode 100644 .github/workflows/deploy.yaml diff --git a/.github/workflows/deploy.yaml b/.github/workflows/deploy.yaml new file mode 100644 index 0000000..e885fdb --- /dev/null +++ b/.github/workflows/deploy.yaml @@ -0,0 +1,40 @@ +name: Auto Deploy after push + +on: + push: + branches: + - main + +jobs: + deploy: + name: Build, Deploy to S3 bucket + runs-on: [ubuntu-latest] + + strategy: + matrix: + node-version: [14.15.x] + + steps: + - uses: actions/checkout@v2 + + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node-version }} + + - name: Npm install + run: npm install + + - name: Build + run: npm run build + + - name: Transfer to S3 for serving static + uses: jakejarvis/s3-sync-action@master + with: + args: --acl public-read --follow-symlinks --delete + env: + AWS_S3_BUCKET: ${{ secrets.AWS_BUCKET_NAME }} + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_IAM_MANAGER_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_IAM_MANAGER_SECRET_ACCESS_KEY }} + AWS_REGION: ${{ secrets.AWS_BUCKET_REGION }} + SOURCE_DIR: "dist" diff --git a/src/assets/frame-F1FFAD.png b/src/assets/frame-F1FFAD.png index 93c902ea179ffebd36a10d11e14516939e195bd9..f3d74f550c0a261983a15e02eb934679278a5717 100644 GIT binary patch literal 17223 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 s6mr5s*zkBcJ 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 AmjD0& diff --git a/src/assets/frame-FFFDBA.png b/src/assets/frame-FFFDBA.png index abd89f32c7a2e6fa45a89f47fd18df5276be67dd..d23e5d41943bf4fdec3b832fb086c23ae02ee859 100644 GIT binary patch literal 17271 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 literal 17288 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 diff --git a/src/component/AllFrameCpn/FrameList.jsx b/src/component/AllFrameCpn/FrameList.jsx index 900d2b9..bb32edd 100644 --- a/src/component/AllFrameCpn/FrameList.jsx +++ b/src/component/AllFrameCpn/FrameList.jsx @@ -9,6 +9,7 @@ import { accessTokenAtom } from "../../store/jotaiAtoms"; const FrameList = () => { const [frames, setFrames] = useState([]); const [accessToken, setAccessToken] = useAtom(accessTokenAtom); + useEffect(() => { // 액세스 토큰이 있을 때만 API 요청을 보내도록 조건 처리 if (accessToken) { @@ -22,7 +23,7 @@ const FrameList = () => { // API 요청 보내기 axios .get( - "http://ec2-3-35-208-177.ap-northeast-2.compute.amazonaws.com:8080/frame/frameList", + "http://ec2-3-35-208-177.ap-northeast-2.compute.amazonaws.com:8080/frame/list", config ) .then((res) => { @@ -43,19 +44,27 @@ const FrameList = () => {
-
    - {frames.map((frame, index) => ( -
  • -
    - frame -
    -
    -

    프레임 ID: {frame.id}

    -

    프레임 제목: {frame.title}

    -
    -
  • - ))} -
+ {frames.length === null ? ( // frames 배열이 비어 있는 경우 +
+

새 프레임을 추가해주세요

+
+ ) : ( + // frames 배열에 프레임이 있는 경우 +
    + {frames.map((frame, index) => ( +
  • + +
  • + ))} +
+ )}
); diff --git a/src/component/AllFrameCpn/FrameList.module.css b/src/component/AllFrameCpn/FrameList.module.css index 6e0324c..364e8cc 100644 --- a/src/component/AllFrameCpn/FrameList.module.css +++ b/src/component/AllFrameCpn/FrameList.module.css @@ -1,3 +1,9 @@ +ul { + list-style-type: none; + margin: 0px; + padding: 0px; +} + .FrameList { width: 390px; height: 689px; @@ -19,3 +25,39 @@ border-radius: 10px; border-color: #009eff; } + +.FrameScroll { + height: 619px; +} + +.InfoMsg { + height: 100%; + display: flex; + flex-direction: row; + justify-content: center; + align-items: center; +} + +.FrameUl { + display: flex; + flex-direction: row; + justify-content: center; + align-items: center; + flex-wrap: wrap; /* 너비를 넘어가면 다음 줄로 넘어감 */ +} + +.FrameItem { + width: calc(40% - 10px); + gap: 10px; + margin: 20px 10px; +} + +.FrameItem button { + background: #ffffff; + border: none; +} + +.FrameImage { + width: 100%; + height: auto; +} diff --git a/src/component/MakeFrameCpn/Background.module.css b/src/component/MakeFrameCpn/Background.module.css index 8b0128e..536ecb1 100644 --- a/src/component/MakeFrameCpn/Background.module.css +++ b/src/component/MakeFrameCpn/Background.module.css @@ -5,7 +5,7 @@ .ListTop { height: 40px; - padding: 14px 14px 14px 18px; + padding: 10px; display: flex; flex-direction: row; justify-content: center; @@ -22,17 +22,17 @@ .ListView { width: 100%; height: 160px; - padding: 15px 0px 15px 18px; + padding: 10px 0px; display: flex; flex-direction: column; justify-content: center; - gap: 18px; + gap: 30px; } .FirstLine { display: flex; flex-direction: row; - justify-content: space-around; + justify-content: space-evenly; } .FirstLine button { @@ -60,7 +60,7 @@ .SecondLine { display: flex; flex-direction: row; - justify-content: space-around; + justify-content: space-evenly; } .SecondLine button { diff --git a/src/component/MakeFrameCpn/Sticker.jsx b/src/component/MakeFrameCpn/Sticker.jsx index d61ac2e..c65531a 100644 --- a/src/component/MakeFrameCpn/Sticker.jsx +++ b/src/component/MakeFrameCpn/Sticker.jsx @@ -16,7 +16,7 @@ const Sticker = ({ handleStickerSelect }) => { const fetchStickers = async (theme) => { try { const res = await axios.get( - `http://ec2-3-35-208-177.ap-northeast-2.compute.amazonaws.com:8080/frame/get/sticker/${theme}` + `http://ec2-3-35-208-177.ap-northeast-2.compute.amazonaws.com:8080/frame/stickerList/${theme}` ); const imageStickers = res.data.filter((url, index) => index !== 0); console.log("이미지 URL 리스트:", imageStickers); diff --git a/src/component/MakeFrameCpn/Template.jsx b/src/component/MakeFrameCpn/Template.jsx index 0417cb2..385228a 100644 --- a/src/component/MakeFrameCpn/Template.jsx +++ b/src/component/MakeFrameCpn/Template.jsx @@ -13,12 +13,7 @@ const Template = ({ changeFrameImage }) => { return (
- - - - - - +
-
diff --git a/src/pages/Frame/Frame.module.css b/src/pages/Frame/Frame.module.css index b649fe0..81c1031 100644 --- a/src/pages/Frame/Frame.module.css +++ b/src/pages/Frame/Frame.module.css @@ -95,7 +95,7 @@ background: #f7f8f8; display: flex; flex-direction: row; - justify-content: center; + justify-content: space-evenly; align-items: center; gap: 20px; } From de54636ddb14e6a49fbdc4757a5564af786ec792 Mon Sep 17 00:00:00 2001 From: gkswldnjs78 Date: Tue, 21 Nov 2023 12:27:02 +0900 Subject: [PATCH 3/4] Github Actions --- .github/workflows/deploy.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deploy.yaml b/.github/workflows/deploy.yaml index e885fdb..0672847 100644 --- a/.github/workflows/deploy.yaml +++ b/.github/workflows/deploy.yaml @@ -29,7 +29,7 @@ jobs: run: npm run build - name: Transfer to S3 for serving static - uses: jakejarvis/s3-sync-action@master + uses: picpic/picpic-bucket@main with: args: --acl public-read --follow-symlinks --delete env: From 312f10db4203745f3a47344cd72c9c2a09470857 Mon Sep 17 00:00:00 2001 From: gkswldnjs78 Date: Tue, 21 Nov 2023 12:52:11 +0900 Subject: [PATCH 4/4] Github Actions --- .github/workflows/deploy.yaml | 40 ----------------------------------- .github/workflows/deploy.yml | 37 ++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 40 deletions(-) delete mode 100644 .github/workflows/deploy.yaml create mode 100644 .github/workflows/deploy.yml diff --git a/.github/workflows/deploy.yaml b/.github/workflows/deploy.yaml deleted file mode 100644 index 0672847..0000000 --- a/.github/workflows/deploy.yaml +++ /dev/null @@ -1,40 +0,0 @@ -name: Auto Deploy after push - -on: - push: - branches: - - main - -jobs: - deploy: - name: Build, Deploy to S3 bucket - runs-on: [ubuntu-latest] - - strategy: - matrix: - node-version: [14.15.x] - - steps: - - uses: actions/checkout@v2 - - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 - with: - node-version: ${{ matrix.node-version }} - - - name: Npm install - run: npm install - - - name: Build - run: npm run build - - - name: Transfer to S3 for serving static - uses: picpic/picpic-bucket@main - with: - args: --acl public-read --follow-symlinks --delete - env: - AWS_S3_BUCKET: ${{ secrets.AWS_BUCKET_NAME }} - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_IAM_MANAGER_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_IAM_MANAGER_SECRET_ACCESS_KEY }} - AWS_REGION: ${{ secrets.AWS_BUCKET_REGION }} - SOURCE_DIR: "dist" diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 0000000..eadf3ad --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,37 @@ +name: Auto Deploy after push + +on: + push: + branches: + - main + +jobs: + build: + runs-on: ubuntu-18.04 + steps: + - name: Checkout source code + uses: actions/checkout@master + + - name: Cache node modules # node modules 캐싱 + uses: actions/cache@v1 + with: + path: node_modules + key: ${{ runner.OS }}-master-build-${{ hashFiles('**/yarn.lock') }} + restore-keys: | + ${{ runner.OS }}-build- + ${{ runner.OS }}- + + - name: Install Dependencies + run: npm install + + - name: Build + run: npm run build + env: + CI: "" + + - name: Deploy + env: + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + run: | + aws s3 sync --region ap-northeast-2 ./dist s3://picpic-bucket