diff --git a/src/components/features/noticeList/noticeEmpty.tsx b/src/components/features/noticeList/noticeEmpty.tsx
new file mode 100644
index 0000000..f0caac8
--- /dev/null
+++ b/src/components/features/noticeList/noticeEmpty.tsx
@@ -0,0 +1,36 @@
+import { Button } from '@/components/ui';
+import { useRouter } from 'next/router';
+
+interface NoticeEmptyProps {
+ q?: string;
+ onReset?: () => void;
+}
+
+const NoticeEmpty = ({ q, onReset }: NoticeEmptyProps) => {
+ const router = useRouter();
+ return (
+
+
+ {q ? `"${q}"에 대한 공고를 찾을 수 없습니다.` : '검색 조건에 맞는 공고가 없습니다.'}
+
+ {!q && (
+
+ 새로운 아르바이트 공고가 올라오면 이곳에서 확인할 수 있어요.
+
+ )}
+
+
+ {q ? (
+
+ ) : (
+
+ )}
+
+
+ );
+};
+export default NoticeEmpty;
diff --git a/src/components/layout/header/logo.tsx b/src/components/layout/header/logo.tsx
index 3001560..b5d7bdb 100644
--- a/src/components/layout/header/logo.tsx
+++ b/src/components/layout/header/logo.tsx
@@ -12,7 +12,6 @@ const Logo = () => {
alt='더 줄게 로고'
className='object-contain'
fill
- priority
sizes='(max-width: 744px) 84px, 112px'
/>
diff --git a/src/components/ui/index.ts b/src/components/ui/index.ts
index a74f51c..0505f5e 100644
--- a/src/components/ui/index.ts
+++ b/src/components/ui/index.ts
@@ -16,3 +16,4 @@ export { Filter } from './filter';
export { Icon } from './icon';
export { Modal, Notification } from './modal';
export { Pagination } from './pagination';
+export { SkeletonUI } from './skeleton';
diff --git a/src/components/ui/pagination/pagination.tsx b/src/components/ui/pagination/pagination.tsx
index 9aba82c..7a56218 100644
--- a/src/components/ui/pagination/pagination.tsx
+++ b/src/components/ui/pagination/pagination.tsx
@@ -34,7 +34,7 @@ const Pagination = ({ total, offset, limit, onPageChange, className }: Paginatio
setPageGroup(newGroup);
}, [currentPage, pageGroupSize]);
- if (totalPages < 1) return null;
+ if (totalPages <= 1) return null;
const startPage = pageGroup * pageGroupSize + 1;
const endPage = Math.min(startPage + pageGroupSize - 1, totalPages);
diff --git a/src/components/ui/skeleton/index.ts b/src/components/ui/skeleton/index.ts
new file mode 100644
index 0000000..5c3b787
--- /dev/null
+++ b/src/components/ui/skeleton/index.ts
@@ -0,0 +1 @@
+export { default as SkeletonUI } from './skeletonUI';
diff --git a/src/components/ui/skeleton/skeletonUI.tsx b/src/components/ui/skeleton/skeletonUI.tsx
new file mode 100644
index 0000000..fa0e51c
--- /dev/null
+++ b/src/components/ui/skeleton/skeletonUI.tsx
@@ -0,0 +1,21 @@
+import { cn } from '@/lib/utils/cn';
+
+const SkeletonUI = ({ count = 0, className = '' }) => {
+ return (
+
+ {Array.from({ length: count }).map((_, i) => (
+
+ ))}
+
+ );
+};
+export default SkeletonUI;
diff --git a/src/context/appProvider.tsx b/src/context/appProviderWrapper.tsx
similarity index 77%
rename from src/context/appProvider.tsx
rename to src/context/appProviderWrapper.tsx
index e22208c..31e47bf 100644
--- a/src/context/appProvider.tsx
+++ b/src/context/appProviderWrapper.tsx
@@ -3,7 +3,7 @@ import AuthProvider from './authProvider';
import { ToastProvider } from './toastContext';
import { UserApplicationsProvider } from './userApplicationsProvider';
-const AppProvider = ({ children }: { children: ReactNode }) => {
+const AppProviderWrapper = ({ children }: { children: ReactNode }) => {
return (
@@ -12,4 +12,4 @@ const AppProvider = ({ children }: { children: ReactNode }) => {
);
};
-export default AppProvider;
+export default AppProviderWrapper;
diff --git a/src/pages/_app.tsx b/src/pages/_app.tsx
index 52b1628..f66848d 100644
--- a/src/pages/_app.tsx
+++ b/src/pages/_app.tsx
@@ -1,5 +1,5 @@
import { Footer, Header, Wrapper } from '@/components/layout';
-import AppProvider from '@/context/appProvider';
+import AppProviderWrapper from '@/context/appProviderWrapper';
import '@/styles/fonts.css';
import '@/styles/globals.css';
import type { NextPage } from 'next';
@@ -29,7 +29,7 @@ export default function App({ Component, pageProps }: AppPropsWithLayout) {
- {getLayout()}
+ {getLayout()}
>
);
}
diff --git a/tailwind.config.ts b/tailwind.config.ts
index b73bca8..9c966e0 100644
--- a/tailwind.config.ts
+++ b/tailwind.config.ts
@@ -89,6 +89,12 @@ const config: Config = {
boxShadow: {
'inset-top': '0 -4px 25px 0 rgba(0,0,0,0.1)',
},
+ keyframes: {
+ 'skeleton-shimmer': {
+ '0%': { backgroundPosition: '-400% 0' },
+ '100%': { backgroundPosition: '400% 0' },
+ },
+ },
},
},
plugins: [],