Skip to content

Commit 84b4a49

Browse files
authored
Feature: cn(tailwind-merge + clsx)을 추가한다 (#77)
* feat: `clsx`와 `tailwind-merge`를 설치한다 * refactor: `cn`을 적용한다
1 parent f1a6bc4 commit 84b4a49

File tree

7 files changed

+25
-4
lines changed

7 files changed

+25
-4
lines changed

packages/shared/package.json

+4
Original file line numberDiff line numberDiff line change
@@ -56,5 +56,9 @@
5656
"@extension/storage": "workspace:*",
5757
"@extension/tsconfig": "workspace:*",
5858
"esbuild-node-externals": "^1.14.0"
59+
},
60+
"dependencies": {
61+
"clsx": "^2.1.1",
62+
"tailwind-merge": "^2.4.0"
5963
}
6064
}

packages/shared/src/utils/index.ts

+1
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,4 @@ export * from './url';
77
export * from './error';
88
export * from './supabase';
99
export * from './notion';
10+
export * from './tailwind';

packages/shared/src/utils/tailwind.ts

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
import { ClassValue, clsx } from 'clsx';
2+
import { twMerge } from 'tailwind-merge';
3+
4+
export const cn = (...inputs: ClassValue[]) => {
5+
return twMerge(clsx(inputs));
6+
};

packages/web/src/components/YoutubeEmbed.tsx

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { cn } from '@extension/shared/utils';
12
import { IframeHTMLAttributes } from 'react';
23

34
interface YoutubeEmbedProps extends IframeHTMLAttributes<HTMLIFrameElement> {
@@ -10,7 +11,7 @@ export default function YoutubeEmbed({ embedId, className, isAutoPlay = false, .
1011
<iframe
1112
width="853"
1213
height="480"
13-
src={`https://www.youtube.com/embed/${embedId}${isAutoPlay ? '?autoplay=1' : ''}`}
14+
src={cn(`https://www.youtube.com/embed/${embedId}`, { '?autoplay=1': isAutoPlay })}
1415
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
1516
allowFullScreen
1617
title="Embedded youtube"

pages/side-panel/src/SidePanel.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ export default function SidePanel() {
3636
</section>
3737
</main>
3838
</OverlayProvider>
39-
<ReactQueryDevtools initialIsOpen={false} />
39+
{/* <ReactQueryDevtools initialIsOpen={false} /> */}
4040
</QueryClientProvider>
4141
);
4242
}

pages/side-panel/src/components/MemoForm.tsx

+4-2
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import {
1111
} from '@extension/shared/hooks';
1212
import { MemoSupabaseResponse } from '@extension/shared/types';
1313
import { getFormattedMemo, getSupabaseClient, I18n, responseUpdateSidePanel } from '@extension/shared/utils/extension';
14-
import { Toast } from '@extension/ui';
14+
import { cn, Toast } from '@extension/ui';
1515
import withAuthentication from '@src/hoc/withAuthentication';
1616
import { UseQueryResult } from '@tanstack/react-query';
1717

@@ -90,7 +90,9 @@ function MemoForm() {
9090
return (
9191
<form className="form-control h-full" onSubmit={handleFormSubmit}>
9292
<textarea
93-
className={`textarea textarea-bordered h-full border-2 resize-none ${isSaved ? '' : 'border-cyan-900 focus:border-cyan-900 '}`}
93+
className={cn('textarea textarea-bordered h-full border-2 resize-none', {
94+
'border-cyan-900 focus:border-cyan-900': isSaved,
95+
})}
9496
id="memo-textarea"
9597
placeholder="memo"
9698
onChange={handleMemoTextAreaChange}

pnpm-lock.yaml

+7
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)