diff --git a/src/components/Header/DesktopHeader.tsx b/src/components/Header/DesktopHeader.tsx
index 49fe0e7..e9b7508 100644
--- a/src/components/Header/DesktopHeader.tsx
+++ b/src/components/Header/DesktopHeader.tsx
@@ -35,6 +35,9 @@ const DesktopHeader: FC = () => {
{t('header.team')}
+
+ {t('header.job')}
+
{t('header.codeOfConduct')}
diff --git a/src/components/JobCard/JobCard.tsx b/src/components/JobCard/JobCard.tsx
index c95204c..6f475ac 100644
--- a/src/components/JobCard/JobCard.tsx
+++ b/src/components/JobCard/JobCard.tsx
@@ -4,26 +4,16 @@ import BusinessIcon from '@mui/icons-material/Business'
import LocationOnIcon from '@mui/icons-material/LocationOn'
import AccountBalanceWalletIcon from '@mui/icons-material/AccountBalanceWallet'
import AccessTimeIcon from '@mui/icons-material/AccessTime'
+import JobData from '@/types/JobListing'
interface JobCardProps {
- title: string;
- company: string;
- logoUrl: string;
- jobPostingUrl: string;
- location:string,
- salary: string;
- publicationDate:string;
- tags: string[];
+ job: JobData
}
-const JobCard: FC = ({ title, company, logoUrl, jobPostingUrl, location, salary, publicationDate, tags }) => {
+const JobCard: FC = ({ job }) => {
const handleReadMoreClick = () => {
- if (jobPostingUrl) {
- window.open(jobPostingUrl, '_blank', 'noopener,noreferrer')
- } else {
- console.error('No URL provided')
- }
+ window.open(job.jobPostingUrl, '_blank', 'noopener,noreferrer')
}
return (
@@ -34,30 +24,30 @@ const JobCard: FC = ({ title, company, logoUrl, jobPostingUrl, loc
- {title}
+ {job.title}
- {company}
+ {job.company}
- {location}
+ {job.location}
- {salary}
+ {job.salary}
- {tags.map((tag, index) => (
+ {job.tags.map((tag, index) => (
@@ -71,7 +61,7 @@ const JobCard: FC = ({ title, company, logoUrl, jobPostingUrl, loc
- { publicationDate }
+ { job.publicationDate }
diff --git a/src/i18n/en/translation.json b/src/i18n/en/translation.json
index fd0eaa1..bdbb6f7 100644
--- a/src/i18n/en/translation.json
+++ b/src/i18n/en/translation.json
@@ -2,7 +2,8 @@
"header": {
"codeOfConduct": "Code of Conduct",
"subtitle": "Women in Software Engineering Japan",
- "team": "Team"
+ "team": "Team",
+ "job": "Jobs"
},
"home": {
"helloWorld": "✨ Hello World ✨",
@@ -18,4 +19,8 @@
"team": {
"title": "✨ Leadership Team ✨"
}
+ ,
+ "job": {
+ "title": "✨ Job Board ✨"
+ }
}
diff --git a/src/i18n/ja/translation.json b/src/i18n/ja/translation.json
index f3cad98..47190ae 100644
--- a/src/i18n/ja/translation.json
+++ b/src/i18n/ja/translation.json
@@ -2,7 +2,8 @@
"header": {
"codeOfConduct": "行動規範",
"subtitle": "ウーマン・イン・ソフトウェアエンジニアリング",
- "team": "チーム"
+ "team": "チーム",
+ "job": "求人掲示板"
},
"home": {
"helloWorld": "✨ Hello 世界 ✨",
@@ -17,5 +18,8 @@
},
"team": {
"title": "✨ リーダーシップ・チーム ✨"
+ },
+ "job": {
+ "title": "✨ 求人掲示板 ✨"
}
}
diff --git a/src/routes/JobBoard/JobBoard.tsx b/src/routes/JobBoard/JobBoard.tsx
index 8092dbb..d869b59 100644
--- a/src/routes/JobBoard/JobBoard.tsx
+++ b/src/routes/JobBoard/JobBoard.tsx
@@ -1,26 +1,24 @@
-import { FC } from 'react'
+import { FC, ReactNode } from 'react'
import JobCard from '@/components/JobCard/JobCard'
-import { Container } from '@mui/material'
-import { jobData } from '@/utils/jobData'
+import { Container, Stack, Typography } from '@mui/material'
+import { useTranslation } from 'react-i18next'
+import job from '@/routes/JobBoard/jobs.json'
+import JobData from '@/types/JobListing'
const JobBoard:FC = () => {
- return (
-
- {jobData.map((job, index) => (
-
- ))}
-
- )
+ const { t } = useTranslation()
+
+ const jobGrid: ReactNode[] = []
+ job.forEach((jobDescription: JobData) => {
+ jobGrid.push()
+ })
+
+ return
+
+ {t('job.title')}
+ {jobGrid}
+
+
}
export default JobBoard
diff --git a/src/routes/JobBoard/jobs.json b/src/routes/JobBoard/jobs.json
new file mode 100644
index 0000000..b500e36
--- /dev/null
+++ b/src/routes/JobBoard/jobs.json
@@ -0,0 +1,12 @@
+[
+ {
+ "title": "Software Engineer",
+ "company": "Amazon Web Services (AWS)",
+ "logoUrl": "/",
+ "location": "Tokyo, Japan",
+ "jobPostingUrl": "http://example.com",
+ "salary": "¥9M ~ ¥11M annually",
+ "publicationDate": "2024/07/27",
+ "tags": ["Full Time", "Senior Level", "Remote", "English"]
+ }
+]
diff --git a/src/routes/Router.tsx b/src/routes/Router.tsx
index a31159c..69f2d6d 100644
--- a/src/routes/Router.tsx
+++ b/src/routes/Router.tsx
@@ -8,11 +8,8 @@ import Home from './Home/Home'
import BaseLayout from './BaseLayout'
import NotFound from './NotFound/NotFound'
import CodeOfConduct from './CodeOfConduct/CodeOfConduct'
-<<<<<<< HEAD
-import JobBoard from './JobBoard/JobBoard'
-=======
import Team from './Team/Team'
->>>>>>> main
+import JobBoard from './JobBoard/JobBoard'
const browserRouter = createHashRouter([{
element: ,
@@ -26,13 +23,12 @@ const browserRouter = createHashRouter([{
element:
},
{
-<<<<<<< HEAD
- path: 'jobboard',
- element:
-=======
path: 'team',
element:
->>>>>>> main
+ },
+ {
+ path: 'jobs',
+ element:
},
{
path: 'theme',
diff --git a/src/types/JobListing.ts b/src/types/JobListing.ts
new file mode 100644
index 0000000..e71dba1
--- /dev/null
+++ b/src/types/JobListing.ts
@@ -0,0 +1,12 @@
+type JobListing = {
+ title:string,
+ company: string,
+ logoUrl: string,
+ location: string,
+ jobPostingUrl: string,
+ salary: string,
+ publicationDate: string,
+ tags: string []
+}
+
+export default JobListing
diff --git a/src/utils/jobData.ts b/src/utils/jobData.ts
deleted file mode 100644
index fc8bf02..0000000
--- a/src/utils/jobData.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-// TODO: Add real job data
-const jobData = [
- {
- title: 'Software Engineer',
- company: 'Amazon Web Services (AWS)',
- logoUrl: '/',
- location: 'Tokyo, Japan',
- jobPostingUrl: '#',
- salary: '¥9M ~ ¥11M annually',
- publicationDate: '2024/07/27',
- tags: ['Full Time', 'Senior Level', 'Remote', 'English']
- }
-]
-
-export { jobData }