Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 37 additions & 0 deletions .github/workflows/share-extension.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
name: ๐Ÿ“ฆ Share Pinback Extension

on:
workflow_dispatch:
inputs:
branch:
description: '๋นŒ๋“œํ•  ๋ธŒ๋žœ์น˜๋ฅผ ํ™•์ธํ•˜์„ธ์š” (๊ธฐ๋ณธ: develop)'
required: true
default: 'develop'

jobs:
build-and-send:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v4
with:
ref: ${{ github.event.inputs.branch }}

- name: Install pnpm
uses: pnpm/action-setup@v3
with:
version: 9

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'pnpm'

- name: Install dependencies
run: pnpm install --frozen-lockfile

- name: Build and Share Extension
env:
VITE_DISCORD_WEBHOOK_URL: ${{ secrets.DISCORD_WEBHOOK_URL }}
run: pnpm share:ext
Comment on lines +34 to +37
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

โš ๏ธ Potential issue | ๐Ÿ”ด Critical

์›นํ›… ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ช…์ด ์Šคํฌ๋ฆฝํŠธ์™€ ๋‹ฌ๋ผ ์—…๋กœ๋“œ๊ฐ€ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

Line 29์—์„œ VITE_DISCORD_WEBHOOK_URL๋ฅผ ์ฃผ์ž…ํ•˜์ง€๋งŒ, apps/extension/scripts/zip.mjs๋Š” Line 8์—์„œ DISCORD_WEBHOOK_URL๋ฅผ ์ฝ๊ณ  Line 43-44์—์„œ ์—†์œผ๋ฉด ์ฆ‰์‹œ ์˜ˆ์™ธ๋ฅผ ๋˜์ง‘๋‹ˆ๋‹ค. ํ˜„์žฌ ์„ค์ •์ด๋ฉด Discord ์ „์†ก ๋‹จ๊ณ„๊ฐ€ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

์ˆ˜์ • ์ œ์•ˆ (diff)
       - name: Build and Share Extension
         env:
-          VITE_DISCORD_WEBHOOK_URL: ${{ secrets.DISCORD_WEBHOOK_URL }}
+          DISCORD_WEBHOOK_URL: ${{ secrets.DISCORD_WEBHOOK_URL }}
         run: pnpm share:ext
๐Ÿ“ Committable suggestion

โ€ผ๏ธ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- name: Build and Share Extension
env:
VITE_DISCORD_WEBHOOK_URL: ${{ secrets.DISCORD_WEBHOOK_URL }}
run: pnpm share:ext
- name: Build and Share Extension
env:
DISCORD_WEBHOOK_URL: ${{ secrets.DISCORD_WEBHOOK_URL }}
run: pnpm share:ext
๐Ÿค– Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/share-extension.yml around lines 27 - 30, The workflow
injects VITE_DISCORD_WEBHOOK_URL but the extension packer
(apps/extension/scripts/zip.mjs) expects DISCORD_WEBHOOK_URL and throws if
missing; fix by aligning names โ€” either change the workflow to export
DISCORD_WEBHOOK_URL instead of VITE_DISCORD_WEBHOOK_URL, or update zip.mjs to
read VITE_DISCORD_WEBHOOK_URL (or fallback to DISCORD_WEBHOOK_URL) before the
early-throw check so the Discord webhook value is present when zip.mjs validates
and sends the notification.

27 changes: 13 additions & 14 deletions apps/client/src/pages/level/components/LevelInfoCard.tsx
Original file line number Diff line number Diff line change
@@ -1,15 +1,14 @@
import { cn } from '@pinback/design-system/utils';
import { Level } from '@pinback/design-system/ui';
import { Icon, type IconName } from '@pinback/design-system/icons';
import { TREE_LEVEL_TABLE, TreeLevel } from '@pages/level/types/treeLevelType';
import { Level } from '@pinback/design-system/ui';
import { cn } from '@pinback/design-system/utils';

const LEVEL_TOOLTIP_ICON = {
1: 'tooltip_1',
2: 'tooltip_2',
3: 'tooltip_3',
4: 'tooltip_4',
5: 'tooltip_5',
} as const satisfies Record<TreeLevel, IconName>;
const LEVEL_TOOLTIP_IMAGE = {
1: '/assets/tooltip_1.svg',
2: '/assets/tooltip_2.svg',
3: '/assets/tooltip_3.svg',
4: '/assets/tooltip_4.svg',
5: '/assets/tooltip_5.svg',
} as const satisfies Record<TreeLevel, string>;

export default function LevelInfoCard() {
const rows = [...TREE_LEVEL_TABLE].reverse();
Expand All @@ -33,12 +32,12 @@ export default function LevelInfoCard() {
>
<div className="flex w-full items-center gap-[1.2rem]">
<div className="bg-gray0 flex h-[4.6rem] w-[4.6rem] items-center justify-center rounded-[0.8rem]">
<Icon
name={LEVEL_TOOLTIP_ICON[row.level]}
<img
src={LEVEL_TOOLTIP_IMAGE[row.level]}
alt={`${row.level} ์ธ๋„ค์ผ ์•„์ด์ฝ˜`}
width={46}
height={46}
className="rounded-[0.8rem]"
aria-label={`${row.level} ์ธ๋„ค์ผ ์•„์ด์ฝ˜`}
className="object-cover"
/>
</div>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,13 @@ const Footer = () => {
aria-label="Pinback ๋ธ”๋กœ๊ทธ"
className="transition-opacity hover:opacity-80"
>
<Icon name="palms" width={28} height={28} />
<img
src="/assets/palms.svg"
alt="Palms ๋กœ๊ณ "
width={28}
height={28}
className="object-contain"
/>
</a>
</div>
</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,13 @@ const Footer = () => {
aria-label="Pinback ๋ธ”๋กœ๊ทธ"
className="transition-opacity hover:opacity-80"
>
<Icon name="palms" width={28} height={28} />
<img
src="/assets/palms.svg"
alt="Palms ๋กœ๊ณ "
width={28}
height={28}
className="object-contain"
/>
</a>
</div>
</div>
Expand Down
8 changes: 7 additions & 1 deletion apps/client/src/pages/remind/components/footer/Footer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,13 @@ const Footer = () => {
aria-label="Pinback ๋ธ”๋กœ๊ทธ"
className="transition-opacity hover:opacity-80"
>
<Icon name="palms" width={28} height={28} />
<img
src="/assets/palms.svg"
alt="Palms ๋กœ๊ณ "
width={28}
height={28}
className="object-contain"
/>
</a>
</div>
</div>
Expand Down
8 changes: 4 additions & 4 deletions apps/client/src/shared/components/sidebar/MyLevelItem.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import { Icon } from '@pinback/design-system/icons';
import { Level, Progress } from '@pinback/design-system/ui';
import { cn } from '@pinback/design-system/utils';
import { getTreeLevel } from '@shared/utils/treeLevel';
Expand Down Expand Up @@ -34,11 +33,12 @@ export default function MyLevelItem({
className="flex size-[4.6rem] items-center justify-center"
aria-hidden
>
<Icon
name="chippi_profile"
<img
src="/assets/chippi_profile.svg"
alt=""
width={46}
height={46}
className="rounded-[0.4rem]"
className="object-cover"
Comment thread
coderabbitai[bot] marked this conversation as resolved.
/>
</div>

Expand Down
3 changes: 3 additions & 0 deletions apps/extension/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,6 @@
npm-debug.log*
yarn-debug.log*
yarn-error.log*

# build output
out/
5 changes: 4 additions & 1 deletion apps/extension/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@
"build:prod": "tsc -b && vite build --mode production",
"lint": "eslint .",
"format": "prettier -w .",
"zip": "pnpm build:prod && node scripts/zip.mjs"
"zip": "pnpm build:prod && node scripts/zip.mjs",
"share:dev": "pnpm build:dev && node --env-file=.env.development scripts/zip.mjs"
Comment on lines +13 to +14
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

โš ๏ธ Potential issue | ๐ŸŸ  Major

๐Ÿงฉ Analysis chain

๐ŸŒ Web query:

Node.js --env-file flag support when introduced version

๐Ÿ’ก Result:

The --env-file flag was introduced in Node.js version 20.6.0.

Citations:


๐Ÿ Script executed:

# Verify the actual package.json files and scripts
find . -name "package.json" -path "*/extension/*" -o -name "package.json" -path "./package.json" | head -20

Repository: Pinback-Team/pinback-client

Length of output: 115


๐Ÿ Script executed:

# Check root package.json for engine declaration
cat -n package.json | grep -A 2 -B 2 '"node"'

Repository: Pinback-Team/pinback-client

Length of output: 198


๐Ÿ Script executed:

# Check apps/extension/package.json for the scripts and dependencies
cat -n apps/extension/package.json

Repository: Pinback-Team/pinback-client

Length of output: 2172


๐Ÿ Script executed:

# Search for share:ext script in all package.json files
grep -r "share:ext" . --include="package.json"

Repository: Pinback-Team/pinback-client

Length of output: 147


๐Ÿ Script executed:

# Also search in any script files
grep -r "share:ext" . --include="*.mjs" --include="*.js" --include="*.json"

Repository: Pinback-Team/pinback-client

Length of output: 147


share:dev ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์ง€์› ์—”์ง„ ๋ฒ”์œ„ ๋‚ด์—์„œ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

node --env-file ํ”Œ๋ž˜๊ทธ๋Š” Node.js 20.6.0๋ถ€ํ„ฐ ์ง€์›๋˜์ง€๋งŒ, ๋ฃจํŠธ package.json (Line 47)์—์„œ๋Š” ์—ฌ์ „ํžˆ engines.node: >=18์„ ํ—ˆ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Node 18๊ณผ 19 ํ™˜๊ฒฝ์—์„œ share:dev ๋ฐ ์ด๋ฅผ ํ˜ธ์ถœํ•˜๋Š” share:ext ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

์—”์ง„ ํ•˜ํ•œ์„ >=20.6.0 ์ด์ƒ์œผ๋กœ ์˜ฌ๋ฆฌ๊ฑฐ๋‚˜, .env.development ํŒŒ์ผ์„ ์Šคํฌ๋ฆฝํŠธ ๋‚ด๋ถ€(dotenv ๋“ฑ)์—์„œ ๋กœ๋“œํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ณ€๊ฒฝํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿค– Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/extension/package.json` around lines 13 - 14, The "share:dev" script
uses the Node.js "--env-file" flag (requires Node >=20.6.0) while the root
package.json's engines.node still allows ">=18", causing failures for Node 18/19
when running "share:dev" or "share:ext"; fix by either updating engines.node to
">=20.6.0" to match the flag requirement, or remove the CLI flag and load
.env.development inside the script (e.g., require/initialize dotenv or use node
-r dotenv/config in the script that calls scripts/zip.mjs) so "share:dev" and
"share:ext" work on older supported Node versions.

},
"dependencies": {
"@pinback/contracts": "workspace:*",
Expand All @@ -32,12 +33,14 @@
"@types/react": "^18.3.5",
"@types/react-dom": "^18.3.0",
"@vitejs/plugin-react-swc": "^4.0.0",
"adm-zip": "^0.5.16",
"autoprefixer": "^10.4.21",
"eslint": "^9.33.0",
"eslint-plugin-jsx-a11y": "^6.9.0",
"eslint-plugin-react": "^7.35.0",
"eslint-plugin-react-hooks": "^5.2.0",
"eslint-plugin-react-refresh": "^0.4.20",
"form-data": "^4.0.5",
"prettier": "^3.3.3",
"prettier-plugin-tailwindcss": "^0.6.8",
"tailwindcss": "^4.1.12",
Expand Down
86 changes: 86 additions & 0 deletions apps/extension/scripts/zip.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
/* global process */
import AdmZip from 'adm-zip';
import axios from 'axios';
import FormData from 'form-data';
import fs from 'fs';
import path from 'path';

const WEBHOOK_URL = process.env.DISCORD_WEBHOOK_URL; // eslint-disable-line
const DIST_DIR = path.resolve('dist');
const OUT_DIR = path.resolve('out');
const ZIP_NAME = 'pinback-ext-dev.zip';
const ZIP_PATH = path.join(OUT_DIR, ZIP_NAME);
Comment on lines +11 to +12
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

โš ๏ธ Potential issue | ๐ŸŸ  Major

ํ”„๋กœ๋•์…˜ ๋นŒ๋“œ๋„ pinback-ext-dev.zip๋กœ ๋ฎ์–ด์จ์ง‘๋‹ˆ๋‹ค.

์ด ์Šคํฌ๋ฆฝํŠธ๋Š” apps/extension/package.json Line 13์˜ zip๊ณผ Line 14์˜ share:dev์—์„œ ๊ณต์šฉ์œผ๋กœ ํ˜ธ์ถœ๋˜๋Š”๋ฐ, ํŒŒ์ผ๋ช…์ด ํ•˜๋“œ์ฝ”๋”ฉ๋ผ ์žˆ์–ด์„œ ํ”„๋กœ๋•์…˜ ์•„์นด์ด๋ธŒ๋„ dev ์ด๋ฆ„์œผ๋กœ ์ƒ์„ฑ๋˜๊ณ  ๊ฐ™์€ out/pinback-ext-dev.zip๋ฅผ ์žฌ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“œ๋ณ„ ํŒŒ์ผ๋ช…์€ ์ธ์ž๋‚˜ ํ™˜๊ฒฝ๋ณ€์ˆ˜๋กœ ๋ถ„๋ฆฌํ•˜๋Š” ํŽธ์ด ์•ˆ์ „ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿค– Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/extension/scripts/zip.mjs` around lines 11 - 12, ํ˜„์žฌ ZIP_NAME๊ณผ ZIP_PATH๊ฐ€
ํ•˜๋“œ์ฝ”๋”ฉ๋˜์–ด ์žˆ์–ด ํ”„๋กœ๋•์…˜ ๋นŒ๋“œ๋„ dev ์•„์นด์ด๋ธŒ(p๏ปฟinback-ext-dev.zip)๋กœ ๋ฎ์–ด์“ฐ์ž…๋‹ˆ๋‹ค; ์ˆ˜์ • ๋ฐฉ๋ฒ•์€ ZIP_NAME์„ ๊ณ ์ •
๋ฌธ์ž์—ด ๋Œ€์‹  ๋นŒ๋“œ ๋ชจ๋“œ(์˜ˆ: argv ๋˜๋Š” process.env.BUILD_MODE / process.env.NODE_ENV)๋กœ ๊ฒฐ์ •ํ•˜๋„๋ก
๋ณ€๊ฒฝํ•˜๊ณ  ZIP_PATH๋Š” ๊ทธ ๊ฐ’์— ๋”ฐ๋ผ ์ƒ์„ฑํ•˜๋„๋ก ๋ฐ”๊พธ์„ธ์š”; ๋˜ํ•œ apps/extension์˜ package.json์—์„œ ํ˜ธ์ถœํ•˜๋Š” 'zip'
๋ฐ 'share:dev' ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ํ•„์š” ์‹œ ๋ชจ๋“œ ์ธ์ž๋‚˜ ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ฅผ ์ „๋‹ฌํ•˜๋„๋ก ์—…๋ฐ์ดํŠธํ•ด ์„œ๋กœ ๋‹ค๋ฅธ ๋ชจ๋“œ๋ณ„
ํŒŒ์ผ๋ช…(p๏ปฟinback-ext-dev.zip vs pinback-ext.zip ๋“ฑ)์„ ์‚ฌ์šฉํ•˜๊ฒŒ ํ•˜์‹ญ์‹œ์˜ค.


const getTimestamp = () =>
new Date().toLocaleString('ko-KR', { timeZone: 'Asia/Seoul' });

const createTemplate = (type, details) => {
const { time, fileName, error } = details;
const divider = 'โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”';

if (type === 'success') {
return `๐Ÿ“ฆ **Pinback ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ ๋นŒ๋“œ ์™„๋ฃŒ**\n${divider}\n **๋นŒ๋“œ ์‹œ๊ฐ„:** ${time}\n **ํŒŒ์ผ๋ช…:** \`${fileName}\`\n\n ์ตœ์‹  ๋นŒ๋“œ ํŒŒ์ผ์ด ๋„์ฐฉํ–ˆ์Šต๋‹ˆ๋‹ค. ์••์ถ•์„ ํ’€๊ณ  ์‚ฌ์šฉํ•˜์„ธ์š”!`;
}
return `๐Ÿšจ **Pinback ๋นŒ๋“œ ๊ณต์œ  ์‹คํŒจ**\n${divider}\nโŒ **์—๋Ÿฌ ๋‚ด์šฉ:** ${error}\n๐Ÿ•’ **๋ฐœ์ƒ ์‹œ๊ฐ„:** ${time}\nโš ๏ธ ํ„ฐ๋ฏธ๋„ ๋กœ๊ทธ๋ฅผ ํ™•์ธํ•ด ์ฃผ์„ธ์š”.`;
};

const archiveDist = () => {
if (!fs.existsSync(DIST_DIR)) {
throw new Error('dist ํด๋”๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋นŒ๋“œ๋ฅผ ๋จผ์ € ์‹คํ–‰ํ•ด์ฃผ์„ธ์š”.');
}

if (!fs.existsSync(OUT_DIR)) fs.mkdirSync(OUT_DIR, { recursive: true });
if (fs.existsSync(ZIP_PATH)) fs.unlinkSync(ZIP_PATH);

const zip = new AdmZip();
zip.addLocalFolder(DIST_DIR);
zip.writeZip(ZIP_PATH);

console.log(`โœ… ์••์ถ• ์™„๋ฃŒ: ${ZIP_PATH}`);

Check warning on line 39 in apps/extension/scripts/zip.mjs

View workflow job for this annotation

GitHub Actions / lint

Unexpected console statement
};

const uploadToDiscord = async (content, fileStream = null) => {
if (!WEBHOOK_URL)
throw new Error('DISCORD_WEBHOOK_URL์ด ์„ค์ •๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.');

const form = new FormData();
form.append('content', content);
if (fileStream) form.append('file', fileStream);

await axios.post(WEBHOOK_URL, form, { headers: form.getHeaders() });
};

async function run() {
try {
console.log('๐Ÿ“ฆ dist ํด๋”๋ฅผ ์••์ถ•ํ•˜๋Š” ์ค‘...');

Check warning on line 55 in apps/extension/scripts/zip.mjs

View workflow job for this annotation

GitHub Actions / lint

Unexpected console statement
archiveDist();

console.log('๐Ÿ“ค ๋””์Šค์ฝ”๋“œ๋กœ ์ „์†ก ์ค‘...');

Check warning on line 58 in apps/extension/scripts/zip.mjs

View workflow job for this annotation

GitHub Actions / lint

Unexpected console statement
const message = createTemplate('success', {
time: getTimestamp(),
fileName: ZIP_NAME,
});
await uploadToDiscord(message, fs.createReadStream(ZIP_PATH));

console.log('โœ… ๋ชจ๋“  ์ž‘์—… ์„ฑ๊ณต!');

Check warning on line 65 in apps/extension/scripts/zip.mjs

View workflow job for this annotation

GitHub Actions / lint

Unexpected console statement
} catch (err) {
const isPayloadTooLarge = err.response?.status === 413;
const errorMsg = isPayloadTooLarge
? 'ํŒŒ์ผ ์šฉ๋Ÿ‰์ด ๋„ˆ๋ฌด ํฝ๋‹ˆ๋‹ค (25MB ์ œํ•œ).'
: err.message;

const failMessage = createTemplate('fail', {
time: getTimestamp(),
error: errorMsg,
});

await uploadToDiscord(failMessage).catch((e) =>
console.error('โŒ ์—๋Ÿฌ ์•Œ๋ฆผ ์ „์†ก ์‹คํŒจ:', e.message)

Check warning on line 78 in apps/extension/scripts/zip.mjs

View workflow job for this annotation

GitHub Actions / lint

Unexpected console statement
);

console.error('โŒ ์ž‘์—… ์‹คํŒจ:', errorMsg);

Check warning on line 81 in apps/extension/scripts/zip.mjs

View workflow job for this annotation

GitHub Actions / lint

Unexpected console statement
process.exitCode = 1;
}
}

run();
53 changes: 30 additions & 23 deletions apps/extension/src/pages/DuplicatePop.tsx
Original file line number Diff line number Diff line change
@@ -1,31 +1,38 @@
import { Icon } from "@pinback/design-system/icons";
import extesionPop from '@assets/extension_pop.svg'
import extesionPop from '@assets/extension_pop.svg';
interface DuplicatePopProps {
onLeftClick: () => void;
onRightClick: () => void;
}

const DuplicatePop = ({onLeftClick,onRightClick} : DuplicatePopProps) => {
const DuplicatePop = ({ onLeftClick, onRightClick }: DuplicatePopProps) => {
return (
<div className="bg-white-bg flex w-[26rem] cursor-pointer flex-col items-center justify-center rounded-[1.2rem] px-[1.6rem] py-[2.4rem] common-shadow">
<img src={extesionPop} className="w-[7.2rem] h-[7.2rem] m-auto text-center"/>
<div className="sub2-sb text-font-black-1 pb-[0.8rem]">์น˜์‚๊ฐ€ ์ด๋ฏธ ์ฑ™๊ฒจ๋’€์–ด์š”! <Icon name="dotori" /> </div>
<div className="flex flex-row items-center justify-center gap-[1.2rem] pt-[0.8rem]">
<button
className="border-gray200 sub5-sb bg-white-bg text-font-black-1 w-[10.8rem] rounded-[0.4rem] border py-[0.85rem]"
onClick={onLeftClick}
>
์ˆ˜์ •ํ•˜๊ธฐ
</button>
<button
className="sub5-sb bg-gray900 text-white-bg w-[10.8rem] rounded-[0.4rem] py-[0.85rem]"
onClick={onRightClick}
>
๋Œ€์‹œ๋ณด๋“œ
</button>
</div>
</div>
)
<div className="bg-white-bg common-shadow flex w-[26rem] cursor-pointer flex-col items-center justify-center rounded-[1.2rem] px-[1.6rem] py-[2.4rem]">
<img
alt=""
src={extesionPop}
className="m-auto h-[7.2rem] w-[7.2rem] text-center"
/>
Comment thread
coderabbitai[bot] marked this conversation as resolved.
<div className="sub2-sb text-font-black-1 pb-[0.8rem]">
์น˜์‚๊ฐ€ ์ด๋ฏธ ์ฑ™๊ฒจ๋’€์–ด์š”! ๐ŸŒฐ
</div>
<div className="flex flex-row items-center justify-center gap-[1.2rem] pt-[0.8rem]">
<button
className="border-gray200 sub5-sb bg-white-bg text-font-black-1 w-[10.8rem] rounded-[0.4rem] border py-[0.85rem]"
onClick={onLeftClick}
type="button"
>
์ˆ˜์ •ํ•˜๊ธฐ
</button>
<button
className="sub5-sb bg-gray900 text-white-bg w-[10.8rem] rounded-[0.4rem] py-[0.85rem]"
onClick={onRightClick}
type="button"
>
Comment thread
coderabbitai[bot] marked this conversation as resolved.
๋Œ€์‹œ๋ณด๋“œ
</button>
</div>
</div>
);
};

export default DuplicatePop;
export default DuplicatePop;
1 change: 1 addition & 0 deletions apps/extension/vite.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ export default defineConfig(({ mode }) => {
build: {
outDir: 'dist',
copyPublicDir: true,
sourcemap: false,
},
publicDir: 'public',

Expand Down
9 changes: 9 additions & 0 deletions apps/landing/public/palms.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
8 changes: 7 additions & 1 deletion apps/landing/src/components/Footer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,13 @@ const Footer = () => {
aria-label="Pinback ๋ธ”๋กœ๊ทธ"
className="transition-opacity hover:opacity-80"
>
<Icon name="palms" width={28} height={28} />
<img
src="/assets/palms.svg"
alt="Palms ๋กœ๊ณ "
width={28}
height={28}
className="object-contain"
/>
</a>
</div>
</div>
Expand Down
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@
"lint": "turbo run lint",
"format": "prettier --write \"**/*.{ts,tsx,md}\"",
"check-types": "turbo run check-types",
"test": "turbo run test"
"test": "turbo run test",
"share:ext": "pnpm --filter @pinback/extension share:dev"
},
"devDependencies": {
"@chromatic-com/storybook": "^4.1.1",
Expand Down
12 changes: 0 additions & 12 deletions packages/design-system/src/icons/iconNames.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,8 @@
// ์ด ํŒŒ์ผ์€ ์ž๋™ ์ƒ์„ฑ ํŒŒ์ผ์ž…๋‹ˆ๋‹ค. (์ง์ ‘ ์ˆ˜์ • ๊ธˆ์ง€)
export const iconNames = [
'check_circle',
'chippi_profile',
'dotori',
'ext_home1',
'ext_home2',
'extension_pop',
'extension_thumb',
'google',
'ic_arrow_down_active',
'ic_arrow_down_disable',
Expand All @@ -26,16 +22,8 @@ export const iconNames = [
'ic_plus',
'instagram',
'logo',
'logout_chippi.2512',
'main_header_logo',
'main_logo',
'notsave_circle',
'palms',
'saved',
'tooltip_1',
'tooltip_2',
'tooltip_3',
'tooltip_4',
'tooltip_5',
] as const;
export type IconName = (typeof iconNames)[number];
1 change: 0 additions & 1 deletion packages/design-system/src/icons/source/dotori.svg

This file was deleted.

1 change: 0 additions & 1 deletion packages/design-system/src/icons/source/extension_pop.svg

This file was deleted.

This file was deleted.

This file was deleted.

1 change: 0 additions & 1 deletion packages/design-system/src/icons/source/saved.svg

This file was deleted.

Loading
Loading