{"ast":null,"code":"var _jsxFileName = \"/home/fanfarm/FanFarm/system/V3fanfarm-ubuntu-local/V3fanfarm-frontend/src/components/job/JobDetail.js\",\n _s = $RefreshSig$();\n// src/components/job/JobDetail.js - Firefox対応版・新フィールド表示対応\nimport React, { useState, useEffect, useContext, useCallback } from 'react';\nimport { useParams, useNavigate } from 'react-router-dom';\nimport styled from 'styled-components';\nimport { JobPostings, Applications } from '../../api/api';\nimport { AuthContext } from '../../context/AuthContext';\nimport Button from '../common/Button';\nimport Card from '../common/Card';\nimport JobLocationMap from '../map/JobLocationMap';\nimport { parseJobDate, formatJobDate } from '../../utils/dateUtils';\n\n// スタイルコンポーネント\nimport { jsxDEV as _jsxDEV, Fragment as _Fragment } from \"react/jsx-dev-runtime\";\nconst JobDetailContainer = styled.div`\n max-width: 800px;\n margin: 40px auto;\n padding: 0 24px;\n \n @media (max-width: 768px) {\n margin: 20px auto;\n padding: 0 16px;\n }\n`;\n_c = JobDetailContainer;\nconst JobTitle = styled.h1`\n text-align: center;\n margin-bottom: 24px;\n color: var(--primary-color);\n font-size: 32px;\n \n @media (max-width: 768px) {\n font-size: 24px;\n }\n`;\n_c2 = JobTitle;\nconst JobContent = styled.div`\n margin-top: 32px;\n`;\n_c3 = JobContent;\nconst JobSection = styled.div`\n margin-bottom: 24px;\n`;\n_c4 = JobSection;\nconst SectionTitle = styled.h2`\n font-size: 22px;\n margin-bottom: 16px;\n color: var(--secondary-color);\n \n @media (max-width: 768px) {\n font-size: 20px;\n }\n`;\n_c5 = SectionTitle;\nconst JobDetailItem = styled.p`\n margin-bottom: 12px;\n font-size: 18px;\n line-height: 1.6;\n \n @media (max-width: 768px) {\n font-size: 16px;\n }\n`;\n_c6 = JobDetailItem;\nconst JobLabel = styled.span`\n font-weight: 700;\n margin-right: 8px;\n color: #555;\n`;\n_c7 = JobLabel;\nconst DateChipsContainer = styled.div`\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n margin-top: 8px;\n`;\n_c8 = DateChipsContainer;\nconst DateChip = styled.span`\n background: #e3f2fd;\n color: #1976d2;\n padding: 6px 12px;\n border-radius: 16px;\n font-size: 14px;\n display: inline-flex;\n align-items: center;\n \n @media (max-width: 768px) {\n font-size: 13px;\n padding: 4px 10px;\n }\n`;\n_c9 = DateChip;\nconst RemarksSection = styled.div`\n background: #fffef7;\n border: 1px solid #fff3cd;\n border-radius: var(--border-radius);\n padding: 16px;\n margin-top: 16px;\n`;\n_c0 = RemarksSection;\nconst ButtonGroup = styled.div`\n display: flex;\n justify-content: center;\n gap: 16px;\n margin-top: 32px;\n\n @media (max-width: 768px) {\n flex-direction: column;\n gap: 8px;\n }\n`;\n_c1 = ButtonGroup;\nconst ErrorMessage = styled.p`\n color: var(--error-color);\n font-size: 16px;\n margin-top: 16px;\n text-align: center;\n padding: 12px;\n background: #ffebee;\n border-radius: 8px;\n`;\n_c10 = ErrorMessage;\nconst SuccessMessage = styled.p`\n color: var(--success-color);\n font-size: 18px;\n font-weight: 700;\n margin-top: 16px;\n text-align: center;\n padding: 12px;\n background: #e8f5e9;\n border-radius: 8px;\n`;\n_c11 = SuccessMessage;\nconst Loading = styled.p`\n text-align: center;\n font-size: 18px;\n color: var(--text-light);\n margin: 48px 0;\n`;\n_c12 = Loading;\nconst Error = styled.p`\n text-align: center;\n font-size: 18px;\n color: var(--error-color);\n margin: 48px 0;\n`;\n_c13 = Error;\nconst Modal = styled.div`\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba(0, 0, 0, 0.5);\n display: flex;\n justify-content: center;\n align-items: center;\n z-index: 1000;\n`;\n_c14 = Modal;\nconst ModalContent = styled(Card)`\n width: 90%;\n max-width: 500px;\n padding: 32px;\n text-align: center;\n`;\n_c15 = ModalContent;\nconst ModalTitle = styled.h2`\n margin-bottom: 24px;\n color: var(--primary-color);\n`;\n_c16 = ModalTitle;\nconst ModalText = styled.p`\n font-size: 18px;\n margin-bottom: 24px;\n`;\n_c17 = ModalText;\nconst MapSection = styled(JobSection)`\n border: 1px solid #e0e0e0;\n border-radius: var(--border-radius);\n padding: 20px;\n background: #fafafa;\n`;\nconst LocationInfo = styled.div`\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 16px;\n font-size: 16px;\n color: var(--text-color);\n`;\nconst JobDetail = () => {\n _s();\n const {\n id\n } = useParams();\n const {\n currentUser\n } = useContext(AuthContext);\n const navigate = useNavigate();\n const [job, setJob] = useState(null);\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState('');\n const [successMessage, setSuccessMessage] = useState('');\n const [errorMessage, setErrorMessage] = useState('');\n const [showConfirmModal, setShowConfirmModal] = useState(false);\n const [locationData, setLocationData] = useState(null);\n const [isApplied, setIsApplied] = useState(false);\n useEffect(() => {\n const fetchJobDetail = async () => {\n try {\n const response = await JobPostings.getById(id);\n setJob(response.data);\n\n // 応募済みチェック(worker と job_seeker の両方に対応)\n if (currentUser && (currentUser.user_type === 'job_seeker' || currentUser.user_type === 'worker')) {\n try {\n console.log('応募状況を確認中...');\n const applicationsResponse = await Applications.getMyApplications();\n console.log('応募一覧:', applicationsResponse.data);\n const hasApplied = applicationsResponse.data.some(app => {\n // statusがnullまたはundefinedの場合も考慮\n const isMatch = app.job_posting_id === parseInt(id) && (!app.status || app.status === 'pending' || app.status === 'applied');\n if (isMatch) {\n console.log('既に応募済みです:', app);\n }\n return isMatch;\n });\n setIsApplied(hasApplied);\n } catch (err) {\n console.log('応募状況の確認エラー:', err);\n // エラーが発生しても続行(応募ボタンは表示)\n setIsApplied(false);\n }\n }\n setLoading(false);\n } catch (err) {\n console.error('求人詳細取得エラー:', err);\n setError('求人情報の取得に失敗しました');\n setLoading(false);\n }\n };\n fetchJobDetail();\n }, [id, currentUser]);\n const handleApply = () => {\n if (!currentUser) {\n navigate('/login');\n return;\n }\n if (currentUser.user_type === 'farmer') {\n setErrorMessage('農家ユーザーは求人に応募できません');\n setTimeout(() => setErrorMessage(''), 3000);\n return;\n }\n if (currentUser.user_type !== 'job_seeker' && currentUser.user_type !== 'worker') {\n setErrorMessage('このアカウントタイプでは応募できません');\n setTimeout(() => setErrorMessage(''), 3000);\n return;\n }\n if (isApplied) {\n setErrorMessage('既に応募済みです');\n setTimeout(() => setErrorMessage(''), 3000);\n return;\n }\n setShowConfirmModal(true);\n };\n const handleConfirmApply = async () => {\n try {\n await Applications.create({\n job_posting_id: parseInt(id)\n });\n setIsApplied(true);\n setSuccessMessage('応募が完了しました!');\n setShowConfirmModal(false);\n setTimeout(() => {\n navigate('/profile');\n }, 2000);\n } catch (err) {\n var _err$response, _err$response$data;\n setErrorMessage(((_err$response = err.response) === null || _err$response === void 0 ? void 0 : (_err$response$data = _err$response.data) === null || _err$response$data === void 0 ? void 0 : _err$response$data.error) || '応募に失敗しました');\n setShowConfirmModal(false);\n setTimeout(() => setErrorMessage(''), 3000);\n }\n };\n const handleCancelApply = () => {\n setShowConfirmModal(false);\n };\n const handleBack = () => {\n navigate('/jobs');\n };\n const handleLocationFound = useCallback(result => {\n setLocationData(result);\n console.log('📍 求人地の位置情報を取得:', result);\n }, []);\n const handleLocationError = useCallback(error => {\n console.warn('📍 求人地の位置情報取得エラー:', error);\n }, []);\n if (loading) {\n return /*#__PURE__*/_jsxDEV(JobDetailContainer, {\n children: /*#__PURE__*/_jsxDEV(Loading, {\n children: \"\\u8AAD\\u307F\\u8FBC\\u307F\\u4E2D...\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 315,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 314,\n columnNumber: 7\n }, this);\n }\n if (error) {\n return /*#__PURE__*/_jsxDEV(JobDetailContainer, {\n children: [/*#__PURE__*/_jsxDEV(Error, {\n children: error\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 323,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(ButtonGroup, {\n children: /*#__PURE__*/_jsxDEV(Button, {\n onClick: handleBack,\n children: \"\\u6C42\\u4EBA\\u4E00\\u89A7\\u306B\\u623B\\u308B\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 325,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 324,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 322,\n columnNumber: 7\n }, this);\n }\n if (!job) {\n return /*#__PURE__*/_jsxDEV(JobDetailContainer, {\n children: [/*#__PURE__*/_jsxDEV(Error, {\n children: \"\\u6C42\\u4EBA\\u60C5\\u5831\\u304C\\u898B\\u3064\\u304B\\u308A\\u307E\\u305B\\u3093\\u3067\\u3057\\u305F\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 334,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(ButtonGroup, {\n children: /*#__PURE__*/_jsxDEV(Button, {\n onClick: handleBack,\n children: \"\\u6C42\\u4EBA\\u4E00\\u89A7\\u306B\\u623B\\u308B\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 336,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 335,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 333,\n columnNumber: 7\n }, this);\n }\n\n // 勤務日の配列化処理(Firefox対応)\n const workDatesArray = job.work_dates ? job.work_dates.split(',').map(date => {\n const trimmedDate = date.trim();\n const parsedDate = parseJobDate(trimmedDate);\n return {\n original: trimmedDate,\n parsed: parsedDate,\n formatted: parsedDate ? formatJobDate(parsedDate) : trimmedDate\n };\n }) : [];\n\n // 自分の求人かチェック\n const isMyJob = currentUser && currentUser.user_type === 'farmer' && job.user_id === currentUser.id;\n\n // 応募可能かチェック\n const canApply = !isApplied && job.positions_filled < job.positions_available && job.is_active;\n return /*#__PURE__*/_jsxDEV(JobDetailContainer, {\n children: [process.env.NODE_ENV === 'development' && /*#__PURE__*/_jsxDEV(\"div\", {\n style: {\n background: '#f0f0f0',\n padding: '10px',\n marginBottom: '20px',\n fontSize: '12px',\n borderRadius: '4px'\n },\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: [\"\\u30E6\\u30FC\\u30B6\\u30FC\\u30BF\\u30A4\\u30D7: \", currentUser ? currentUser.user_type : 'ログインしていません']\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 375,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: [\"\\u30E6\\u30FC\\u30B6\\u30FCID: \", currentUser ? currentUser.id : 'N/A']\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 376,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: [\"\\u6C42\\u4EBA\\u6295\\u7A3F\\u8005ID: \", job === null || job === void 0 ? void 0 : job.user_id]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 377,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: [\"\\u81EA\\u5206\\u306E\\u6C42\\u4EBA: \", isMyJob ? 'はい' : 'いいえ']\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 378,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: [\"\\u5FDC\\u52DF\\u6E08\\u307F: \", isApplied ? 'はい' : 'いいえ']\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 379,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: [\"\\u5FDC\\u52DF\\u53EF\\u80FD: \", canApply ? 'はい' : 'いいえ']\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 380,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 368,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Card, {\n children: [/*#__PURE__*/_jsxDEV(JobTitle, {\n children: job.company_name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 385,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(JobContent, {\n children: [/*#__PURE__*/_jsxDEV(JobSection, {\n children: [/*#__PURE__*/_jsxDEV(SectionTitle, {\n children: \"\\u52E4\\u52D9\\u60C5\\u5831\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 390,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(JobDetailItem, {\n children: [/*#__PURE__*/_jsxDEV(JobLabel, {\n children: \"\\u52E4\\u52D9\\u5730:\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 392,\n columnNumber: 15\n }, this), job.location]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 391,\n columnNumber: 13\n }, this), job.meeting_place && /*#__PURE__*/_jsxDEV(JobDetailItem, {\n children: [/*#__PURE__*/_jsxDEV(JobLabel, {\n children: \"\\u96C6\\u5408\\u5834\\u6240:\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 399,\n columnNumber: 17\n }, this), job.meeting_place]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 398,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(JobDetailItem, {\n children: [/*#__PURE__*/_jsxDEV(JobLabel, {\n children: \"\\u6642\\u7D66:\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 405,\n columnNumber: 15\n }, this), job.hourly_wage.toLocaleString(), \"\\u5186\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 404,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(JobDetailItem, {\n children: [/*#__PURE__*/_jsxDEV(JobLabel, {\n children: \"\\u52E4\\u52D9\\u66DC\\u65E5:\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 410,\n columnNumber: 15\n }, this), job.work_days]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 409,\n columnNumber: 13\n }, this), workDatesArray.length > 0 && /*#__PURE__*/_jsxDEV(JobDetailItem, {\n children: [/*#__PURE__*/_jsxDEV(JobLabel, {\n children: \"\\u52E4\\u52D9\\u65E5:\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 417,\n columnNumber: 17\n }, this), /*#__PURE__*/_jsxDEV(DateChipsContainer, {\n children: workDatesArray.map((dateInfo, index) => /*#__PURE__*/_jsxDEV(DateChip, {\n children: [\"\\uD83D\\uDCC5 \", dateInfo.formatted]\n }, index, true, {\n fileName: _jsxFileName,\n lineNumber: 420,\n columnNumber: 21\n }, this))\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 418,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 416,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(JobDetailItem, {\n children: [/*#__PURE__*/_jsxDEV(JobLabel, {\n children: \"\\u52E4\\u52D9\\u6642\\u9593:\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 429,\n columnNumber: 15\n }, this), job.work_hours]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 428,\n columnNumber: 13\n }, this), job.seasonal_vegetables && /*#__PURE__*/_jsxDEV(JobDetailItem, {\n children: [/*#__PURE__*/_jsxDEV(JobLabel, {\n children: \"\\u65EC\\u306E\\u91CE\\u83DC:\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 435,\n columnNumber: 17\n }, this), job.seasonal_vegetables]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 434,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(JobDetailItem, {\n children: [/*#__PURE__*/_jsxDEV(JobLabel, {\n children: \"\\u52DF\\u96C6\\u4EBA\\u6570:\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 441,\n columnNumber: 15\n }, this), job.positions_available, \"\\u4EBA \\uFF08\\u6B8B\\u308A\", job.positions_available - job.positions_filled, \"\\u4EBA\\uFF09\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 440,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(JobDetailItem, {\n children: [/*#__PURE__*/_jsxDEV(JobLabel, {\n children: \"\\u52DF\\u96C6\\u958B\\u59CB\\u65E5:\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 446,\n columnNumber: 15\n }, this), new Date(job.created_at).toLocaleDateString('ja-JP', {\n year: 'numeric',\n month: 'long',\n day: 'numeric'\n })]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 445,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(JobDetailItem, {\n children: [/*#__PURE__*/_jsxDEV(JobLabel, {\n children: \"\\u52DF\\u96C6\\u72B6\\u6CC1:\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 455,\n columnNumber: 15\n }, this), job.is_active ? '募集中' : '募集終了']\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 454,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 389,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(JobSection, {\n children: [/*#__PURE__*/_jsxDEV(SectionTitle, {\n children: \"\\u696D\\u52D9\\u5185\\u5BB9\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 473,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(JobDetailItem, {\n children: job.job_description\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 474,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 472,\n columnNumber: 11\n }, this), job.belongings && /*#__PURE__*/_jsxDEV(JobSection, {\n children: [/*#__PURE__*/_jsxDEV(SectionTitle, {\n children: \"\\u6301\\u3061\\u7269\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 480,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(JobDetailItem, {\n children: job.belongings\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 481,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 479,\n columnNumber: 13\n }, this), job.remarks && /*#__PURE__*/_jsxDEV(RemarksSection, {\n children: [/*#__PURE__*/_jsxDEV(SectionTitle, {\n children: \"\\uD83D\\uDCCC \\u5099\\u8003\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 488,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(JobDetailItem, {\n style: {\n marginBottom: 0\n },\n children: job.remarks\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 489,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 487,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(JobSection, {\n children: [/*#__PURE__*/_jsxDEV(SectionTitle, {\n children: \"\\u9023\\u7D61\\u5148\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 497,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(JobDetailItem, {\n children: [/*#__PURE__*/_jsxDEV(JobLabel, {\n children: \"\\u9023\\u7D61\\u5148:\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 499,\n columnNumber: 15\n }, this), job.contact]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 498,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 496,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(ButtonGroup, {\n children: [isMyJob ? /*#__PURE__*/_jsxDEV(_Fragment, {\n children: [/*#__PURE__*/_jsxDEV(Button, {\n onClick: () => navigate(`/jobs/${id}/edit`),\n children: \"\\u7DE8\\u96C6\\u3059\\u308B\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 508,\n columnNumber: 17\n }, this), job.is_active && /*#__PURE__*/_jsxDEV(Button, {\n onClick: async () => {\n if (window.confirm('本当に募集を終了しますか?')) {\n try {\n await JobPostings.update(id, {\n is_active: false\n });\n setJob({\n ...job,\n is_active: false\n });\n setSuccessMessage('募集を終了しました');\n } catch (err) {\n setErrorMessage('募集終了に失敗しました');\n }\n }\n },\n children: \"\\u52DF\\u96C6\\u3092\\u7D42\\u4E86\\u3059\\u308B\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 512,\n columnNumber: 19\n }, this)]\n }, void 0, true) : /*#__PURE__*/_jsxDEV(_Fragment, {\n children: currentUser ? currentUser.user_type === 'job_seeker' || currentUser.user_type === 'worker' ? /*#__PURE__*/_jsxDEV(Button, {\n onClick: handleApply,\n disabled: !canApply,\n children: isApplied ? '応募済み' : !job.is_active ? '募集終了' : job.positions_filled >= job.positions_available ? '定員に達しました' : '応募する'\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 532,\n columnNumber: 21\n }, this) :\n /*#__PURE__*/\n // 農家ユーザーの場合\n _jsxDEV(Button, {\n disabled: true,\n children: \"\\u8FB2\\u5BB6\\u30A2\\u30AB\\u30A6\\u30F3\\u30C8\\u3067\\u306F\\u5FDC\\u52DF\\u3067\\u304D\\u307E\\u305B\\u3093\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 543,\n columnNumber: 21\n }, this) :\n /*#__PURE__*/\n // ログインしていないユーザー向け\n _jsxDEV(Button, {\n onClick: () => navigate('/login'),\n children: \"\\u30ED\\u30B0\\u30A4\\u30F3\\u3057\\u3066\\u5FDC\\u52DF\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 549,\n columnNumber: 19\n }, this)\n }, void 0, false), /*#__PURE__*/_jsxDEV(Button, {\n $secondary: true,\n onClick: handleBack,\n children: \"\\u6C42\\u4EBA\\u4E00\\u89A7\\u306B\\u623B\\u308B\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 556,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 504,\n columnNumber: 11\n }, this), errorMessage && /*#__PURE__*/_jsxDEV(ErrorMessage, {\n children: errorMessage\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 561,\n columnNumber: 28\n }, this), successMessage && /*#__PURE__*/_jsxDEV(SuccessMessage, {\n children: successMessage\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 562,\n columnNumber: 30\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 387,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 384,\n columnNumber: 7\n }, this), showConfirmModal && /*#__PURE__*/_jsxDEV(Modal, {\n children: /*#__PURE__*/_jsxDEV(ModalContent, {\n children: [/*#__PURE__*/_jsxDEV(ModalTitle, {\n children: \"\\u5FDC\\u52DF\\u306E\\u78BA\\u8A8D\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 569,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(ModalText, {\n children: [job.company_name, \"\\u306E\\u6C42\\u4EBA\\u306B\\u5FDC\\u52DF\\u3057\\u307E\\u3059\\u3002\\u3088\\u308D\\u3057\\u3044\\u3067\\u3059\\u304B\\uFF1F\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 570,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(ButtonGroup, {\n children: [/*#__PURE__*/_jsxDEV(Button, {\n onClick: handleConfirmApply,\n children: \"\\u5FDC\\u52DF\\u3059\\u308B\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 574,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(Button, {\n $secondary: true,\n onClick: handleCancelApply,\n children: \"\\u30AD\\u30E3\\u30F3\\u30BB\\u30EB\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 575,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 573,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 568,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 567,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 365,\n columnNumber: 5\n }, this);\n};\n_s(JobDetail, \"0n/7BcoknyCIj2t9GiDL9QfqZP4=\", false, function () {\n return [useParams, useNavigate];\n});\n_c18 = JobDetail;\nexport default JobDetail;\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c0, _c1, _c10, _c11, _c12, _c13, _c14, _c15, _c16, _c17, _c18;\n$RefreshReg$(_c, \"JobDetailContainer\");\n$RefreshReg$(_c2, \"JobTitle\");\n$RefreshReg$(_c3, \"JobContent\");\n$RefreshReg$(_c4, \"JobSection\");\n$RefreshReg$(_c5, \"SectionTitle\");\n$RefreshReg$(_c6, \"JobDetailItem\");\n$RefreshReg$(_c7, \"JobLabel\");\n$RefreshReg$(_c8, \"DateChipsContainer\");\n$RefreshReg$(_c9, \"DateChip\");\n$RefreshReg$(_c0, \"RemarksSection\");\n$RefreshReg$(_c1, \"ButtonGroup\");\n$RefreshReg$(_c10, \"ErrorMessage\");\n$RefreshReg$(_c11, \"SuccessMessage\");\n$RefreshReg$(_c12, \"Loading\");\n$RefreshReg$(_c13, \"Error\");\n$RefreshReg$(_c14, \"Modal\");\n$RefreshReg$(_c15, \"ModalContent\");\n$RefreshReg$(_c16, \"ModalTitle\");\n$RefreshReg$(_c17, \"ModalText\");\n$RefreshReg$(_c18, \"JobDetail\");","map":{"version":3,"names":["React","useState","useEffect","useContext","useCallback","useParams","useNavigate","styled","JobPostings","Applications","AuthContext","Button","Card","JobLocationMap","parseJobDate","formatJobDate","jsxDEV","_jsxDEV","Fragment","_Fragment","JobDetailContainer","div","_c","JobTitle","h1","_c2","JobContent","_c3","JobSection","_c4","SectionTitle","h2","_c5","JobDetailItem","p","_c6","JobLabel","span","_c7","DateChipsContainer","_c8","DateChip","_c9","RemarksSection","_c0","ButtonGroup","_c1","ErrorMessage","_c10","SuccessMessage","_c11","Loading","_c12","Error","_c13","Modal","_c14","ModalContent","_c15","ModalTitle","_c16","ModalText","_c17","MapSection","LocationInfo","JobDetail","_s","id","currentUser","navigate","job","setJob","loading","setLoading","error","setError","successMessage","setSuccessMessage","errorMessage","setErrorMessage","showConfirmModal","setShowConfirmModal","locationData","setLocationData","isApplied","setIsApplied","fetchJobDetail","response","getById","data","user_type","console","log","applicationsResponse","getMyApplications","hasApplied","some","app","isMatch","job_posting_id","parseInt","status","err","handleApply","setTimeout","handleConfirmApply","create","_err$response","_err$response$data","handleCancelApply","handleBack","handleLocationFound","result","handleLocationError","warn","children","fileName","_jsxFileName","lineNumber","columnNumber","onClick","workDatesArray","work_dates","split","map","date","trimmedDate","trim","parsedDate","original","parsed","formatted","isMyJob","user_id","canApply","positions_filled","positions_available","is_active","process","env","NODE_ENV","style","background","padding","marginBottom","fontSize","borderRadius","company_name","location","meeting_place","hourly_wage","toLocaleString","work_days","length","dateInfo","index","work_hours","seasonal_vegetables","Date","created_at","toLocaleDateString","year","month","day","job_description","belongings","remarks","contact","window","confirm","update","disabled","$secondary","_c18","$RefreshReg$"],"sources":["/home/fanfarm/FanFarm/system/V3fanfarm-ubuntu-local/V3fanfarm-frontend/src/components/job/JobDetail.js"],"sourcesContent":["// src/components/job/JobDetail.js - Firefox対応版・新フィールド表示対応\nimport React, { useState, useEffect, useContext, useCallback } from 'react';\nimport { useParams, useNavigate } from 'react-router-dom';\nimport styled from 'styled-components';\nimport { JobPostings, Applications } from '../../api/api';\nimport { AuthContext } from '../../context/AuthContext';\nimport Button from '../common/Button';\nimport Card from '../common/Card';\nimport JobLocationMap from '../map/JobLocationMap';\nimport { parseJobDate, formatJobDate } from '../../utils/dateUtils';\n\n// スタイルコンポーネント\nconst JobDetailContainer = styled.div`\n max-width: 800px;\n margin: 40px auto;\n padding: 0 24px;\n \n @media (max-width: 768px) {\n margin: 20px auto;\n padding: 0 16px;\n }\n`;\n\nconst JobTitle = styled.h1`\n text-align: center;\n margin-bottom: 24px;\n color: var(--primary-color);\n font-size: 32px;\n \n @media (max-width: 768px) {\n font-size: 24px;\n }\n`;\n\nconst JobContent = styled.div`\n margin-top: 32px;\n`;\n\nconst JobSection = styled.div`\n margin-bottom: 24px;\n`;\n\nconst SectionTitle = styled.h2`\n font-size: 22px;\n margin-bottom: 16px;\n color: var(--secondary-color);\n \n @media (max-width: 768px) {\n font-size: 20px;\n }\n`;\n\nconst JobDetailItem = styled.p`\n margin-bottom: 12px;\n font-size: 18px;\n line-height: 1.6;\n \n @media (max-width: 768px) {\n font-size: 16px;\n }\n`;\n\nconst JobLabel = styled.span`\n font-weight: 700;\n margin-right: 8px;\n color: #555;\n`;\n\nconst DateChipsContainer = styled.div`\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n margin-top: 8px;\n`;\n\nconst DateChip = styled.span`\n background: #e3f2fd;\n color: #1976d2;\n padding: 6px 12px;\n border-radius: 16px;\n font-size: 14px;\n display: inline-flex;\n align-items: center;\n \n @media (max-width: 768px) {\n font-size: 13px;\n padding: 4px 10px;\n }\n`;\n\nconst RemarksSection = styled.div`\n background: #fffef7;\n border: 1px solid #fff3cd;\n border-radius: var(--border-radius);\n padding: 16px;\n margin-top: 16px;\n`;\n\nconst ButtonGroup = styled.div`\n display: flex;\n justify-content: center;\n gap: 16px;\n margin-top: 32px;\n\n @media (max-width: 768px) {\n flex-direction: column;\n gap: 8px;\n }\n`;\n\nconst ErrorMessage = styled.p`\n color: var(--error-color);\n font-size: 16px;\n margin-top: 16px;\n text-align: center;\n padding: 12px;\n background: #ffebee;\n border-radius: 8px;\n`;\n\nconst SuccessMessage = styled.p`\n color: var(--success-color);\n font-size: 18px;\n font-weight: 700;\n margin-top: 16px;\n text-align: center;\n padding: 12px;\n background: #e8f5e9;\n border-radius: 8px;\n`;\n\nconst Loading = styled.p`\n text-align: center;\n font-size: 18px;\n color: var(--text-light);\n margin: 48px 0;\n`;\n\nconst Error = styled.p`\n text-align: center;\n font-size: 18px;\n color: var(--error-color);\n margin: 48px 0;\n`;\n\nconst Modal = styled.div`\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba(0, 0, 0, 0.5);\n display: flex;\n justify-content: center;\n align-items: center;\n z-index: 1000;\n`;\n\nconst ModalContent = styled(Card)`\n width: 90%;\n max-width: 500px;\n padding: 32px;\n text-align: center;\n`;\n\nconst ModalTitle = styled.h2`\n margin-bottom: 24px;\n color: var(--primary-color);\n`;\n\nconst ModalText = styled.p`\n font-size: 18px;\n margin-bottom: 24px;\n`;\n\nconst MapSection = styled(JobSection)`\n border: 1px solid #e0e0e0;\n border-radius: var(--border-radius);\n padding: 20px;\n background: #fafafa;\n`;\n\nconst LocationInfo = styled.div`\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 16px;\n font-size: 16px;\n color: var(--text-color);\n`;\n\nconst JobDetail = () => {\n const { id } = useParams();\n const { currentUser } = useContext(AuthContext);\n const navigate = useNavigate();\n const [job, setJob] = useState(null);\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState('');\n const [successMessage, setSuccessMessage] = useState('');\n const [errorMessage, setErrorMessage] = useState('');\n const [showConfirmModal, setShowConfirmModal] = useState(false);\n const [locationData, setLocationData] = useState(null);\n const [isApplied, setIsApplied] = useState(false);\n\n useEffect(() => {\n const fetchJobDetail = async () => {\n try {\n const response = await JobPostings.getById(id);\n setJob(response.data);\n \n // 応募済みチェック(worker と job_seeker の両方に対応)\n if (currentUser && (currentUser.user_type === 'job_seeker' || currentUser.user_type === 'worker')) {\n try {\n console.log('応募状況を確認中...');\n const applicationsResponse = await Applications.getMyApplications();\n console.log('応募一覧:', applicationsResponse.data);\n \n const hasApplied = applicationsResponse.data.some(\n app => {\n // statusがnullまたはundefinedの場合も考慮\n const isMatch = app.job_posting_id === parseInt(id) && \n (!app.status || app.status === 'pending' || app.status === 'applied');\n if (isMatch) {\n console.log('既に応募済みです:', app);\n }\n return isMatch;\n }\n );\n setIsApplied(hasApplied);\n } catch (err) {\n console.log('応募状況の確認エラー:', err);\n // エラーが発生しても続行(応募ボタンは表示)\n setIsApplied(false);\n }\n }\n \n setLoading(false);\n } catch (err) {\n console.error('求人詳細取得エラー:', err);\n setError('求人情報の取得に失敗しました');\n setLoading(false);\n }\n };\n\n fetchJobDetail();\n }, [id, currentUser]);\n\n const handleApply = () => {\n if (!currentUser) {\n navigate('/login');\n return;\n }\n\n if (currentUser.user_type === 'farmer') {\n setErrorMessage('農家ユーザーは求人に応募できません');\n setTimeout(() => setErrorMessage(''), 3000);\n return;\n }\n\n if (currentUser.user_type !== 'job_seeker' && currentUser.user_type !== 'worker') {\n setErrorMessage('このアカウントタイプでは応募できません');\n setTimeout(() => setErrorMessage(''), 3000);\n return;\n }\n\n if (isApplied) {\n setErrorMessage('既に応募済みです');\n setTimeout(() => setErrorMessage(''), 3000);\n return;\n }\n\n setShowConfirmModal(true);\n };\n\n const handleConfirmApply = async () => {\n try {\n await Applications.create({\n job_posting_id: parseInt(id)\n });\n \n setIsApplied(true);\n setSuccessMessage('応募が完了しました!');\n setShowConfirmModal(false);\n \n setTimeout(() => {\n navigate('/profile');\n }, 2000);\n } catch (err) {\n setErrorMessage(err.response?.data?.error || '応募に失敗しました');\n setShowConfirmModal(false);\n setTimeout(() => setErrorMessage(''), 3000);\n }\n };\n\n const handleCancelApply = () => {\n setShowConfirmModal(false);\n };\n\n const handleBack = () => {\n navigate('/jobs');\n };\n\n const handleLocationFound = useCallback((result) => {\n setLocationData(result);\n console.log('📍 求人地の位置情報を取得:', result);\n }, []);\n\n const handleLocationError = useCallback((error) => {\n console.warn('📍 求人地の位置情報取得エラー:', error);\n }, []);\n\n if (loading) {\n return (\n <JobDetailContainer>\n <Loading>読み込み中...</Loading>\n </JobDetailContainer>\n );\n }\n\n if (error) {\n return (\n <JobDetailContainer>\n <Error>{error}</Error>\n <ButtonGroup>\n <Button onClick={handleBack}>求人一覧に戻る</Button>\n </ButtonGroup>\n </JobDetailContainer>\n );\n }\n\n if (!job) {\n return (\n <JobDetailContainer>\n <Error>求人情報が見つかりませんでした</Error>\n <ButtonGroup>\n <Button onClick={handleBack}>求人一覧に戻る</Button>\n </ButtonGroup>\n </JobDetailContainer>\n );\n }\n\n // 勤務日の配列化処理(Firefox対応)\n const workDatesArray = job.work_dates ?\n job.work_dates.split(',').map(date => {\n const trimmedDate = date.trim();\n const parsedDate = parseJobDate(trimmedDate);\n return {\n original: trimmedDate,\n parsed: parsedDate,\n formatted: parsedDate ? formatJobDate(parsedDate) : trimmedDate\n };\n }) : [];\n\n // 自分の求人かチェック\n const isMyJob = currentUser &&\n currentUser.user_type === 'farmer' &&\n job.user_id === currentUser.id;\n\n // 応募可能かチェック\n const canApply = !isApplied &&\n job.positions_filled < job.positions_available &&\n job.is_active;\n\n return (\n <JobDetailContainer>\n {/* デバッグ情報(本番環境では削除) */}\n {process.env.NODE_ENV === 'development' && (\n <div style={{\n background: '#f0f0f0',\n padding: '10px',\n marginBottom: '20px',\n fontSize: '12px',\n borderRadius: '4px'\n }}>\n <div>ユーザータイプ: {currentUser ? currentUser.user_type : 'ログインしていません'}</div>\n <div>ユーザーID: {currentUser ? currentUser.id : 'N/A'}</div>\n <div>求人投稿者ID: {job?.user_id}</div>\n <div>自分の求人: {isMyJob ? 'はい' : 'いいえ'}</div>\n <div>応募済み: {isApplied ? 'はい' : 'いいえ'}</div>\n <div>応募可能: {canApply ? 'はい' : 'いいえ'}</div>\n </div>\n )}\n\n <Card>\n <JobTitle>{job.company_name}</JobTitle>\n\n <JobContent>\n {/* 勤務情報セクション */}\n <JobSection>\n <SectionTitle>勤務情報</SectionTitle>\n <JobDetailItem>\n <JobLabel>勤務地:</JobLabel>\n {job.location}\n </JobDetailItem>\n\n {/* 集合場所 */}\n {job.meeting_place && (\n <JobDetailItem>\n <JobLabel>集合場所:</JobLabel>\n {job.meeting_place}\n </JobDetailItem>\n )}\n\n <JobDetailItem>\n <JobLabel>時給:</JobLabel>\n {job.hourly_wage.toLocaleString()}円\n </JobDetailItem>\n\n <JobDetailItem>\n <JobLabel>勤務曜日:</JobLabel>\n {job.work_days}\n </JobDetailItem>\n\n {/* 具体的な勤務日(Firefox対応) */}\n {workDatesArray.length > 0 && (\n <JobDetailItem>\n <JobLabel>勤務日:</JobLabel>\n <DateChipsContainer>\n {workDatesArray.map((dateInfo, index) => (\n <DateChip key={index}>\n 📅 {dateInfo.formatted}\n </DateChip>\n ))}\n </DateChipsContainer>\n </JobDetailItem>\n )}\n\n <JobDetailItem>\n <JobLabel>勤務時間:</JobLabel>\n {job.work_hours}\n </JobDetailItem>\n\n {job.seasonal_vegetables && (\n <JobDetailItem>\n <JobLabel>旬の野菜:</JobLabel>\n {job.seasonal_vegetables}\n </JobDetailItem>\n )}\n\n <JobDetailItem>\n <JobLabel>募集人数:</JobLabel>\n {job.positions_available}人 (残り{job.positions_available - job.positions_filled}人)\n </JobDetailItem>\n\n <JobDetailItem>\n <JobLabel>募集開始日:</JobLabel>\n {new Date(job.created_at).toLocaleDateString('ja-JP', {\n year: 'numeric',\n month: 'long',\n day: 'numeric'\n })}\n </JobDetailItem>\n\n <JobDetailItem>\n <JobLabel>募集状況:</JobLabel>\n {job.is_active ? '募集中' : '募集終了'}\n </JobDetailItem>\n </JobSection>\n\n {/* マップセクション - 一時的に非表示\n <MapSection>\n <SectionTitle>📍 勤務地マップ</SectionTitle>\n <LocationInfo>\n <span>🏠</span>\n <span>{job.location}</span>\n </LocationInfo>\n // 地図の精度問題のため一時的に非表示\n </MapSection>\n */}\n\n {/* 業務内容セクション */}\n <JobSection>\n <SectionTitle>業務内容</SectionTitle>\n <JobDetailItem>{job.job_description}</JobDetailItem>\n </JobSection>\n\n {/* 持ち物セクション */}\n {job.belongings && (\n <JobSection>\n <SectionTitle>持ち物</SectionTitle>\n <JobDetailItem>{job.belongings}</JobDetailItem>\n </JobSection>\n )}\n\n {/* 備考セクション */}\n {job.remarks && (\n <RemarksSection>\n <SectionTitle>📌 備考</SectionTitle>\n <JobDetailItem style={{ marginBottom: 0 }}>\n {job.remarks}\n </JobDetailItem>\n </RemarksSection>\n )}\n\n {/* 連絡先セクション */}\n <JobSection>\n <SectionTitle>連絡先</SectionTitle>\n <JobDetailItem>\n <JobLabel>連絡先:</JobLabel>\n {job.contact}\n </JobDetailItem>\n </JobSection>\n\n <ButtonGroup>\n {/* 求人投稿者向けボタン */}\n {isMyJob ? (\n <>\n <Button onClick={() => navigate(`/jobs/${id}/edit`)}>\n 編集する\n </Button>\n {job.is_active && (\n <Button onClick={async () => {\n if (window.confirm('本当に募集を終了しますか?')) {\n try {\n await JobPostings.update(id, { is_active: false });\n setJob({ ...job, is_active: false });\n setSuccessMessage('募集を終了しました');\n } catch (err) {\n setErrorMessage('募集終了に失敗しました');\n }\n }\n }}>\n 募集を終了する\n </Button>\n )}\n </>\n ) : (\n <>\n {/* 応募者向けボタン(worker と job_seeker 両対応) */}\n {currentUser ? (\n (currentUser.user_type === 'job_seeker' || currentUser.user_type === 'worker') ? (\n <Button\n onClick={handleApply}\n disabled={!canApply}\n >\n {isApplied ? '応募済み' :\n !job.is_active ? '募集終了' :\n job.positions_filled >= job.positions_available ? '定員に達しました' :\n '応募する'}\n </Button>\n ) : (\n // 農家ユーザーの場合\n <Button disabled>\n 農家アカウントでは応募できません\n </Button>\n )\n ) : (\n // ログインしていないユーザー向け\n <Button onClick={() => navigate('/login')}>\n ログインして応募\n </Button>\n )}\n </>\n )}\n\n <Button $secondary onClick={handleBack}>\n 求人一覧に戻る\n </Button>\n </ButtonGroup>\n\n {errorMessage && <ErrorMessage>{errorMessage}</ErrorMessage>}\n {successMessage && <SuccessMessage>{successMessage}</SuccessMessage>}\n </JobContent>\n </Card>\n\n {showConfirmModal && (\n <Modal>\n <ModalContent>\n <ModalTitle>応募の確認</ModalTitle>\n <ModalText>\n {job.company_name}の求人に応募します。よろしいですか?\n </ModalText>\n <ButtonGroup>\n <Button onClick={handleConfirmApply}>応募する</Button>\n <Button $secondary onClick={handleCancelApply}>キャンセル</Button>\n </ButtonGroup>\n </ModalContent>\n </Modal>\n )}\n </JobDetailContainer>\n );\n};\n\nexport default JobDetail;\n"],"mappings":";;AAAA;AACA,OAAOA,KAAK,IAAIC,QAAQ,EAAEC,SAAS,EAAEC,UAAU,EAAEC,WAAW,QAAQ,OAAO;AAC3E,SAASC,SAAS,EAAEC,WAAW,QAAQ,kBAAkB;AACzD,OAAOC,MAAM,MAAM,mBAAmB;AACtC,SAASC,WAAW,EAAEC,YAAY,QAAQ,eAAe;AACzD,SAASC,WAAW,QAAQ,2BAA2B;AACvD,OAAOC,MAAM,MAAM,kBAAkB;AACrC,OAAOC,IAAI,MAAM,gBAAgB;AACjC,OAAOC,cAAc,MAAM,uBAAuB;AAClD,SAASC,YAAY,EAAEC,aAAa,QAAQ,uBAAuB;;AAEnE;AAAA,SAAAC,MAAA,IAAAC,OAAA,EAAAC,QAAA,IAAAC,SAAA;AACA,MAAMC,kBAAkB,GAAGb,MAAM,CAACc,GAAG;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAACC,EAAA,GATIF,kBAAkB;AAWxB,MAAMG,QAAQ,GAAGhB,MAAM,CAACiB,EAAE;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAACC,GAAA,GATIF,QAAQ;AAWd,MAAMG,UAAU,GAAGnB,MAAM,CAACc,GAAG;AAC7B;AACA,CAAC;AAACM,GAAA,GAFID,UAAU;AAIhB,MAAME,UAAU,GAAGrB,MAAM,CAACc,GAAG;AAC7B;AACA,CAAC;AAACQ,GAAA,GAFID,UAAU;AAIhB,MAAME,YAAY,GAAGvB,MAAM,CAACwB,EAAE;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAACC,GAAA,GARIF,YAAY;AAUlB,MAAMG,aAAa,GAAG1B,MAAM,CAAC2B,CAAC;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAACC,GAAA,GARIF,aAAa;AAUnB,MAAMG,QAAQ,GAAG7B,MAAM,CAAC8B,IAAI;AAC5B;AACA;AACA;AACA,CAAC;AAACC,GAAA,GAJIF,QAAQ;AAMd,MAAMG,kBAAkB,GAAGhC,MAAM,CAACc,GAAG;AACrC;AACA;AACA;AACA;AACA,CAAC;AAACmB,GAAA,GALID,kBAAkB;AAOxB,MAAME,QAAQ,GAAGlC,MAAM,CAAC8B,IAAI;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAACK,GAAA,GAbID,QAAQ;AAed,MAAME,cAAc,GAAGpC,MAAM,CAACc,GAAG;AACjC;AACA;AACA;AACA;AACA;AACA,CAAC;AAACuB,GAAA,GANID,cAAc;AAQpB,MAAME,WAAW,GAAGtC,MAAM,CAACc,GAAG;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAACyB,GAAA,GAVID,WAAW;AAYjB,MAAME,YAAY,GAAGxC,MAAM,CAAC2B,CAAC;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAACc,IAAA,GARID,YAAY;AAUlB,MAAME,cAAc,GAAG1C,MAAM,CAAC2B,CAAC;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAACgB,IAAA,GATID,cAAc;AAWpB,MAAME,OAAO,GAAG5C,MAAM,CAAC2B,CAAC;AACxB;AACA;AACA;AACA;AACA,CAAC;AAACkB,IAAA,GALID,OAAO;AAOb,MAAME,KAAK,GAAG9C,MAAM,CAAC2B,CAAC;AACtB;AACA;AACA;AACA;AACA,CAAC;AAACoB,IAAA,GALID,KAAK;AAOX,MAAME,KAAK,GAAGhD,MAAM,CAACc,GAAG;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAACmC,IAAA,GAXID,KAAK;AAaX,MAAME,YAAY,GAAGlD,MAAM,CAACK,IAAI,CAAC;AACjC;AACA;AACA;AACA;AACA,CAAC;AAAC8C,IAAA,GALID,YAAY;AAOlB,MAAME,UAAU,GAAGpD,MAAM,CAACwB,EAAE;AAC5B;AACA;AACA,CAAC;AAAC6B,IAAA,GAHID,UAAU;AAKhB,MAAME,SAAS,GAAGtD,MAAM,CAAC2B,CAAC;AAC1B;AACA;AACA,CAAC;AAAC4B,IAAA,GAHID,SAAS;AAKf,MAAME,UAAU,GAAGxD,MAAM,CAACqB,UAAU,CAAC;AACrC;AACA;AACA;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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}