diff --git a/a11y/index.html b/a11y/index.html
index 12fa3e7..73a1d92 100644
--- a/a11y/index.html
+++ b/a11y/index.html
@@ -1,5 +1,5 @@
-
+
diff --git a/a11y/src/App.tsx b/a11y/src/App.tsx
index a8159f9..299331e 100644
--- a/a11y/src/App.tsx
+++ b/a11y/src/App.tsx
@@ -1,16 +1,16 @@
-import "./Typography.css";
-import "./App.css";
+import './Typography.css';
+import './App.css';
-import FlightBooking from "./components/FlightBooking";
+import FlightBooking from './components/FlightBooking';
function App() {
return (
);
}
diff --git a/a11y/src/components/FlightBooking.css b/a11y/src/components/FlightBooking.css
index d9d6083..5235c41 100644
--- a/a11y/src/components/FlightBooking.css
+++ b/a11y/src/components/FlightBooking.css
@@ -34,7 +34,7 @@
width: 30px;
height: 30px;
border-radius: 16px;
- border: 1px solid #C0C0C0;
+ border: 1px solid #c0c0c0;
background-color: #fff;
cursor: pointer;
display: flex;
@@ -61,3 +61,15 @@
border-radius: 4px;
cursor: pointer;
}
+
+.visually-hidden {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ padding: 0;
+ margin: -1px;
+ overflow: hidden;
+ clip: rect(0, 0, 0, 0);
+ white-space: nowrap;
+ border: 0;
+}
diff --git a/a11y/src/components/FlightBooking.tsx b/a11y/src/components/FlightBooking.tsx
index 313cab3..6416b66 100644
--- a/a11y/src/components/FlightBooking.tsx
+++ b/a11y/src/components/FlightBooking.tsx
@@ -1,17 +1,29 @@
-import { useState } from "react";
+import { useState } from 'react';
-import "./FlightBooking.css";
+import './FlightBooking.css';
const MAX_PASSENGERS = 3;
+const MIN_PASSENGERS = 1;
const FlightBooking = () => {
const [adultCount, setAdultCount] = useState(1);
+ const [errorMessage, setErrorMessage] = useState('');
const incrementCount = () => {
+ if (adultCount === MAX_PASSENGERS) {
+ setErrorMessage('최대 승객 수에 도달했습니다.');
+ return;
+ }
+
setAdultCount((prev) => Math.min(MAX_PASSENGERS, prev + 1));
};
const decrementCount = () => {
+ if (adultCount === MIN_PASSENGERS) {
+ setErrorMessage('최소 승객 수에 도달했습니다.');
+ return;
+ }
+
setAdultCount((prev) => Math.max(1, prev - 1));
};
@@ -21,15 +33,28 @@ const FlightBooking = () => {
성인
-
+ {errorMessage && (
+
+ {errorMessage}
+
+ )}
항공편 검색
);
diff --git a/a11y/vite.config.ts b/a11y/vite.config.ts
index 9cc50ea..d8d4e6c 100644
--- a/a11y/vite.config.ts
+++ b/a11y/vite.config.ts
@@ -4,4 +4,7 @@ import react from "@vitejs/plugin-react";
// https://vitejs.dev/config/
export default defineConfig({
plugins: [react()],
+ server: {
+ host: "0.0.0.0",
+ },
});