Newer
Older
FanFarm / system / V3fanfarm-ubuntu-local / V3fanfarm-frontend / node_modules / .cache / babel-loader / 23732813e509e227ef83db38b29c10c3e08adc25c73281f04a73bc2c8943dce9.json
@Fanfarm User Fanfarm User on 18 Dec 26 KB add all
{"ast":null,"code":"import _taggedTemplateLiteral from\"/home/fanfarm/FanFarm/system/V3fanfarm-ubuntu-local/V3fanfarm-frontend/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js\";var _templateObject,_templateObject2,_templateObject3,_templateObject4,_templateObject5,_templateObject6,_templateObject7,_templateObject8,_templateObject9,_templateObject0,_templateObject1,_templateObject10,_templateObject11,_templateObject12;// src/components/common/Header.js - 修正版\nimport React,{useContext,useState}from'react';import{Link,useNavigate}from'react-router-dom';import styled from'styled-components';import{AuthContext}from'../../context/AuthContext';import Button from'./Button';import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";const HeaderContainer=styled.header(_templateObject||(_templateObject=_taggedTemplateLiteral([\"\\n  background-color: var(--white);\\n  padding: 16px 24px;\\n  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\\n  position: sticky;\\n  top: 0;\\n  z-index: 1000; /* z-index\\u3092\\u9AD8\\u304F\\u8A2D\\u5B9A */\\n  \\n  @media (max-width: 768px) {\\n    padding: 12px 16px;\\n  }\\n\"])));const Nav=styled.nav(_templateObject2||(_templateObject2=_taggedTemplateLiteral([\"\\n  display: flex;\\n  justify-content: space-between;\\n  align-items: center;\\n  max-width: 1200px;\\n  margin: 0 auto;\\n  position: relative; /* \\u8FFD\\u52A0 */\\n\"])));const Logo=styled(Link)(_templateObject3||(_templateObject3=_taggedTemplateLiteral([\"\\n  color: var(--primary-color);\\n  font-size: 28px;\\n  font-weight: 700;\\n  text-decoration: none;\\n  display: flex;\\n  align-items: center;\\n  white-space: nowrap; /* \\u6539\\u884C\\u9632\\u6B62 */\\n\\n  img {\\n    height: 40px;\\n    margin-right: 10px;\\n  }\\n\\n  @media (max-width: 768px) {\\n    font-size: 20px; /* \\u3055\\u3089\\u306B\\u5C0F\\u3055\\u304F */\\n    flex-shrink: 1; /* \\u5FC5\\u8981\\u306B\\u5FDC\\u3058\\u3066\\u7E2E\\u5C0F */\\n  }\\n\"])));// デスクトップ用メニュー\nconst DesktopMenuItems=styled.div(_templateObject4||(_templateObject4=_taggedTemplateLiteral([\"\\n  display: flex;\\n  align-items: center;\\n\\n  @media (max-width: 768px) {\\n    display: none;\\n  }\\n\"])));// モバイル用ハンバーガーボタン\nconst MobileMenuButton=styled.button(_templateObject5||(_templateObject5=_taggedTemplateLiteral([\"\\n  display: none;\\n  background: none;\\n  border: none;\\n  cursor: pointer;\\n  padding: 8px;\\n  position: absolute; /* \\u7D76\\u5BFE\\u4F4D\\u7F6E\\u6307\\u5B9A */\\n  right: 0; /* \\u53F3\\u7AEF\\u306B\\u56FA\\u5B9A */\\n  top: 50%;\\n  transform: translateY(-50%);\\n  \\n  @media (max-width: 768px) {\\n    display: block;\\n  }\\n\"])));const HamburgerIcon=styled.div(_templateObject6||(_templateObject6=_taggedTemplateLiteral([\"\\n  width: 28px;\\n  height: 24px;\\n  position: relative;\\n  \\n  span {\\n    display: block;\\n    position: absolute;\\n    height: 3px;\\n    width: 100%;\\n    background: var(--primary-color);\\n    border-radius: 3px;\\n    opacity: 1;\\n    left: 0;\\n    transition: 0.25s ease-in-out;\\n    \\n    &:nth-child(1) {\\n      top: \",\";\\n      transform: \",\";\\n    }\\n    \\n    &:nth-child(2) {\\n      top: 11px;\\n      opacity: \",\";\\n    }\\n    \\n    &:nth-child(3) {\\n      top: \",\";\\n      transform: \",\";\\n    }\\n  }\\n\"])),props=>props.$isOpen?'11px':'0px',props=>props.$isOpen?'rotate(45deg)':'rotate(0)',props=>props.$isOpen?'0':'1',props=>props.$isOpen?'11px':'22px',props=>props.$isOpen?'rotate(-45deg)':'rotate(0)');// モバイルメニュー\nconst MobileMenu=styled.div(_templateObject7||(_templateObject7=_taggedTemplateLiteral([\"\\n  display: none;\\n  position: fixed;\\n  top: 60px; /* \\u30D8\\u30C3\\u30C0\\u30FC\\u306E\\u9AD8\\u3055\\u306B\\u5408\\u308F\\u305B\\u3066\\u8ABF\\u6574 */\\n  left: 0;\\n  right: 0;\\n  background: var(--white);\\n  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);\\n  max-height: calc(100vh - 60px);\\n  overflow-y: auto;\\n  z-index: 999; /* z-index\\u3092\\u9AD8\\u304F\\u8A2D\\u5B9A */\\n  \\n  @media (max-width: 768px) {\\n    display: \",\";\\n  }\\n\"])),props=>props.$isOpen?'block':'none');const MobileMenuContent=styled.div(_templateObject8||(_templateObject8=_taggedTemplateLiteral([\"\\n  padding: 16px;\\n  display: flex;\\n  flex-direction: column;\\n\"])));const MenuItem=styled(Link)(_templateObject9||(_templateObject9=_taggedTemplateLiteral([\"\\n  color: var(--text-color);\\n  font-size: 18px;\\n  font-weight: 500;\\n  text-decoration: none;\\n  margin-left: 24px;\\n  padding: 8px 16px;\\n  border-radius: var(--border-radius);\\n  transition: background-color 0.3s;\\n\\n  &:hover {\\n    background-color: var(--background-color);\\n  }\\n\\n  @media (max-width: 768px) {\\n    margin: 8px 0;\\n    margin-left: 0;\\n    width: 100%;\\n    padding: 12px 16px;\\n    display: block;\\n    font-size: 20px;\\n    border: 1px solid var(--border-color);\\n  }\\n\"])));const LogoutButton=styled(Button)(_templateObject0||(_templateObject0=_taggedTemplateLiteral([\"\\n  margin-left: 24px;\\n\\n  @media (max-width: 768px) {\\n    margin: 8px 0;\\n    margin-left: 0;\\n    width: 100%;\\n  }\\n\"])));// ユーザー情報表示\nconst UserInfo=styled.div(_templateObject1||(_templateObject1=_taggedTemplateLiteral([\"\\n  display: flex;\\n  align-items: center;\\n  margin-left: 16px;\\n  padding: 8px 12px;\\n  background: var(--background-color);\\n  border-radius: var(--border-radius);\\n  \\n  @media (max-width: 768px) {\\n    margin: 16px 0;\\n    margin-left: 0;\\n    justify-content: center;\\n    width: 100%;\\n  }\\n\"])));const UserName=styled.span(_templateObject10||(_templateObject10=_taggedTemplateLiteral([\"\\n  font-size: 16px;\\n  color: var(--text-color);\\n  margin-right: 8px;\\n  \\n  @media (max-width: 768px) {\\n    font-size: 18px;\\n  }\\n\"])));const UserType=styled.span(_templateObject11||(_templateObject11=_taggedTemplateLiteral([\"\\n  font-size: 14px;\\n  color: var(--white);\\n  background: var(--primary-color);\\n  padding: 2px 8px;\\n  border-radius: 12px;\\n  \\n  @media (max-width: 768px) {\\n    font-size: 16px;\\n    padding: 4px 10px;\\n  }\\n\"])));// 背景オーバーレイ(修正版)\nconst Overlay=styled.div(_templateObject12||(_templateObject12=_taggedTemplateLiteral([\"\\n  display: none;\\n  \\n  @media (max-width: 768px) {\\n    display: \",\";\\n    position: fixed;\\n    top: 0;\\n    left: 0;\\n    right: 0;\\n    bottom: 0;\\n    background: rgba(0, 0, 0, 0.5); /* \\u900F\\u660E\\u5EA6\\u3092\\u4E0A\\u3052\\u3066\\u898B\\u3084\\u3059\\u304F */\\n    z-index: 998; /* \\u30E1\\u30CB\\u30E5\\u30FC\\u3088\\u308A\\u4E0B\\u3001\\u4ED6\\u306E\\u30B3\\u30F3\\u30C6\\u30F3\\u30C4\\u3088\\u308A\\u4E0A */\\n  }\\n\"])),props=>props.$isOpen?'block':'none');const Header=()=>{const{currentUser,logout}=useContext(AuthContext);const navigate=useNavigate();const[mobileMenuOpen,setMobileMenuOpen]=useState(false);const handleLogout=()=>{logout();setMobileMenuOpen(false);navigate('/login');};const toggleMobileMenu=()=>{setMobileMenuOpen(!mobileMenuOpen);// ボディのスクロールを制御\nif(!mobileMenuOpen){document.body.style.overflow='hidden';}else{document.body.style.overflow='unset';}};const closeMobileMenu=()=>{setMobileMenuOpen(false);document.body.style.overflow='unset';};// コンポーネントのクリーンアップ\nReact.useEffect(()=>{return()=>{document.body.style.overflow='unset';};},[]);return/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(HeaderContainer,{children:/*#__PURE__*/_jsxs(Nav,{children:[/*#__PURE__*/_jsx(Logo,{to:\"/\",onClick:closeMobileMenu,children:/*#__PURE__*/_jsx(\"span\",{children:\"\\uD83C\\uDF3E\\u30D5\\u30A1\\u30F3\\u30D5\\u30A1\\u30FC\\u30E0\"})}),/*#__PURE__*/_jsx(DesktopMenuItems,{children:currentUser?/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(MenuItem,{to:\"/\",children:\"\\u30DB\\u30FC\\u30E0\"}),currentUser.user_type==='farmer'&&/*#__PURE__*/_jsx(MenuItem,{to:\"/post-job\",children:\"\\u6C42\\u4EBA\\u3092\\u63B2\\u8F09\\u3059\\u308B\"}),currentUser.user_type==='worker'&&/*#__PURE__*/_jsx(MenuItem,{to:\"/jobs\",children:\"\\u6C42\\u4EBA\\u3092\\u63A2\\u3059\"}),/*#__PURE__*/_jsx(MenuItem,{to:\"/profile\",children:\"\\u30DE\\u30A4\\u30DA\\u30FC\\u30B8\"}),/*#__PURE__*/_jsxs(UserInfo,{children:[/*#__PURE__*/_jsxs(UserName,{children:[currentUser.name,\"\\u3055\\u3093\"]}),/*#__PURE__*/_jsx(UserType,{children:currentUser.user_type==='farmer'?'農家':'アルバイト'})]}),/*#__PURE__*/_jsx(LogoutButton,{secondary:true,onClick:handleLogout,children:\"\\u30ED\\u30B0\\u30A2\\u30A6\\u30C8\"})]}):/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(MenuItem,{to:\"/login\",children:\"\\u30ED\\u30B0\\u30A4\\u30F3\"}),/*#__PURE__*/_jsx(MenuItem,{to:\"/register\",children:\"\\u65B0\\u898F\\u767B\\u9332\"})]})}),/*#__PURE__*/_jsx(MobileMenuButton,{onClick:toggleMobileMenu,\"aria-label\":\"\\u30E1\\u30CB\\u30E5\\u30FC\",children:/*#__PURE__*/_jsxs(HamburgerIcon,{$isOpen:mobileMenuOpen,children:[/*#__PURE__*/_jsx(\"span\",{}),/*#__PURE__*/_jsx(\"span\",{}),/*#__PURE__*/_jsx(\"span\",{})]})})]})}),/*#__PURE__*/_jsx(Overlay,{$isOpen:mobileMenuOpen,onClick:closeMobileMenu}),/*#__PURE__*/_jsx(MobileMenu,{$isOpen:mobileMenuOpen,children:/*#__PURE__*/_jsx(MobileMenuContent,{children:currentUser?/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsxs(UserInfo,{children:[/*#__PURE__*/_jsxs(UserName,{children:[currentUser.name,\"\\u3055\\u3093\"]}),/*#__PURE__*/_jsx(UserType,{children:currentUser.user_type==='farmer'?'農家':'アルバイト'})]}),/*#__PURE__*/_jsx(MenuItem,{to:\"/\",onClick:closeMobileMenu,children:\"\\uD83C\\uDFE0 \\u30DB\\u30FC\\u30E0\"}),currentUser.user_type==='farmer'&&/*#__PURE__*/_jsx(MenuItem,{to:\"/post-job\",onClick:closeMobileMenu,children:\"\\uD83D\\uDCDD \\u6C42\\u4EBA\\u3092\\u63B2\\u8F09\\u3059\\u308B\"}),currentUser.user_type==='worker'&&/*#__PURE__*/_jsx(MenuItem,{to:\"/jobs\",onClick:closeMobileMenu,children:\"\\uD83D\\uDD0D \\u6C42\\u4EBA\\u3092\\u63A2\\u3059\"}),/*#__PURE__*/_jsx(MenuItem,{to:\"/profile\",onClick:closeMobileMenu,children:\"\\uD83D\\uDC64 \\u30DE\\u30A4\\u30DA\\u30FC\\u30B8\"}),/*#__PURE__*/_jsx(LogoutButton,{secondary:true,onClick:handleLogout,children:\"\\u30ED\\u30B0\\u30A2\\u30A6\\u30C8\"})]}):/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(MenuItem,{to:\"/login\",onClick:closeMobileMenu,children:\"\\uD83D\\uDD11 \\u30ED\\u30B0\\u30A4\\u30F3\"}),/*#__PURE__*/_jsx(MenuItem,{to:\"/register\",onClick:closeMobileMenu,children:\"\\u2728 \\u65B0\\u898F\\u767B\\u9332\"})]})})})]});};export default Header;","map":{"version":3,"names":["React","useContext","useState","Link","useNavigate","styled","AuthContext","Button","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","HeaderContainer","header","_templateObject","_taggedTemplateLiteral","Nav","nav","_templateObject2","Logo","_templateObject3","DesktopMenuItems","div","_templateObject4","MobileMenuButton","button","_templateObject5","HamburgerIcon","_templateObject6","props","$isOpen","MobileMenu","_templateObject7","MobileMenuContent","_templateObject8","MenuItem","_templateObject9","LogoutButton","_templateObject0","UserInfo","_templateObject1","UserName","span","_templateObject10","UserType","_templateObject11","Overlay","_templateObject12","Header","currentUser","logout","navigate","mobileMenuOpen","setMobileMenuOpen","handleLogout","toggleMobileMenu","document","body","style","overflow","closeMobileMenu","useEffect","children","to","onClick","user_type","name","secondary"],"sources":["/home/fanfarm/FanFarm/system/V3fanfarm-ubuntu-local/V3fanfarm-frontend/src/components/common/Header.js"],"sourcesContent":["// src/components/common/Header.js - 修正版\nimport React, { useContext, useState } from 'react';\nimport { Link, useNavigate } from 'react-router-dom';\nimport styled from 'styled-components';\nimport { AuthContext } from '../../context/AuthContext';\nimport Button from './Button';\n\nconst HeaderContainer = styled.header`\n  background-color: var(--white);\n  padding: 16px 24px;\n  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n  position: sticky;\n  top: 0;\n  z-index: 1000; /* z-indexを高く設定 */\n  \n  @media (max-width: 768px) {\n    padding: 12px 16px;\n  }\n`;\n\nconst Nav = styled.nav`\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  max-width: 1200px;\n  margin: 0 auto;\n  position: relative; /* 追加 */\n`;\n\nconst Logo = styled(Link)`\n  color: var(--primary-color);\n  font-size: 28px;\n  font-weight: 700;\n  text-decoration: none;\n  display: flex;\n  align-items: center;\n  white-space: nowrap; /* 改行防止 */\n\n  img {\n    height: 40px;\n    margin-right: 10px;\n  }\n\n  @media (max-width: 768px) {\n    font-size: 20px; /* さらに小さく */\n    flex-shrink: 1; /* 必要に応じて縮小 */\n  }\n`;\n\n// デスクトップ用メニュー\nconst DesktopMenuItems = styled.div`\n  display: flex;\n  align-items: center;\n\n  @media (max-width: 768px) {\n    display: none;\n  }\n`;\n\n// モバイル用ハンバーガーボタン\nconst MobileMenuButton = styled.button`\n  display: none;\n  background: none;\n  border: none;\n  cursor: pointer;\n  padding: 8px;\n  position: absolute; /* 絶対位置指定 */\n  right: 0; /* 右端に固定 */\n  top: 50%;\n  transform: translateY(-50%);\n  \n  @media (max-width: 768px) {\n    display: block;\n  }\n`;\n\nconst HamburgerIcon = styled.div`\n  width: 28px;\n  height: 24px;\n  position: relative;\n  \n  span {\n    display: block;\n    position: absolute;\n    height: 3px;\n    width: 100%;\n    background: var(--primary-color);\n    border-radius: 3px;\n    opacity: 1;\n    left: 0;\n    transition: 0.25s ease-in-out;\n    \n    &:nth-child(1) {\n      top: ${props => props.$isOpen ? '11px' : '0px'};\n      transform: ${props => props.$isOpen ? 'rotate(45deg)' : 'rotate(0)'};\n    }\n    \n    &:nth-child(2) {\n      top: 11px;\n      opacity: ${props => props.$isOpen ? '0' : '1'};\n    }\n    \n    &:nth-child(3) {\n      top: ${props => props.$isOpen ? '11px' : '22px'};\n      transform: ${props => props.$isOpen ? 'rotate(-45deg)' : 'rotate(0)'};\n    }\n  }\n`;\n\n// モバイルメニュー\nconst MobileMenu = styled.div`\n  display: none;\n  position: fixed;\n  top: 60px; /* ヘッダーの高さに合わせて調整 */\n  left: 0;\n  right: 0;\n  background: var(--white);\n  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);\n  max-height: calc(100vh - 60px);\n  overflow-y: auto;\n  z-index: 999; /* z-indexを高く設定 */\n  \n  @media (max-width: 768px) {\n    display: ${props => props.$isOpen ? 'block' : 'none'};\n  }\n`;\n\nconst MobileMenuContent = styled.div`\n  padding: 16px;\n  display: flex;\n  flex-direction: column;\n`;\n\nconst MenuItem = styled(Link)`\n  color: var(--text-color);\n  font-size: 18px;\n  font-weight: 500;\n  text-decoration: none;\n  margin-left: 24px;\n  padding: 8px 16px;\n  border-radius: var(--border-radius);\n  transition: background-color 0.3s;\n\n  &:hover {\n    background-color: var(--background-color);\n  }\n\n  @media (max-width: 768px) {\n    margin: 8px 0;\n    margin-left: 0;\n    width: 100%;\n    padding: 12px 16px;\n    display: block;\n    font-size: 20px;\n    border: 1px solid var(--border-color);\n  }\n`;\n\nconst LogoutButton = styled(Button)`\n  margin-left: 24px;\n\n  @media (max-width: 768px) {\n    margin: 8px 0;\n    margin-left: 0;\n    width: 100%;\n  }\n`;\n\n// ユーザー情報表示\nconst UserInfo = styled.div`\n  display: flex;\n  align-items: center;\n  margin-left: 16px;\n  padding: 8px 12px;\n  background: var(--background-color);\n  border-radius: var(--border-radius);\n  \n  @media (max-width: 768px) {\n    margin: 16px 0;\n    margin-left: 0;\n    justify-content: center;\n    width: 100%;\n  }\n`;\n\nconst UserName = styled.span`\n  font-size: 16px;\n  color: var(--text-color);\n  margin-right: 8px;\n  \n  @media (max-width: 768px) {\n    font-size: 18px;\n  }\n`;\n\nconst UserType = styled.span`\n  font-size: 14px;\n  color: var(--white);\n  background: var(--primary-color);\n  padding: 2px 8px;\n  border-radius: 12px;\n  \n  @media (max-width: 768px) {\n    font-size: 16px;\n    padding: 4px 10px;\n  }\n`;\n\n// 背景オーバーレイ(修正版)\nconst Overlay = styled.div`\n  display: none;\n  \n  @media (max-width: 768px) {\n    display: ${props => props.$isOpen ? 'block' : 'none'};\n    position: fixed;\n    top: 0;\n    left: 0;\n    right: 0;\n    bottom: 0;\n    background: rgba(0, 0, 0, 0.5); /* 透明度を上げて見やすく */\n    z-index: 998; /* メニューより下、他のコンテンツより上 */\n  }\n`;\n\nconst Header = () => {\n  const { currentUser, logout } = useContext(AuthContext);\n  const navigate = useNavigate();\n  const [mobileMenuOpen, setMobileMenuOpen] = useState(false);\n\n  const handleLogout = () => {\n    logout();\n    setMobileMenuOpen(false);\n    navigate('/login');\n  };\n\n  const toggleMobileMenu = () => {\n    setMobileMenuOpen(!mobileMenuOpen);\n    // ボディのスクロールを制御\n    if (!mobileMenuOpen) {\n      document.body.style.overflow = 'hidden';\n    } else {\n      document.body.style.overflow = 'unset';\n    }\n  };\n\n  const closeMobileMenu = () => {\n    setMobileMenuOpen(false);\n    document.body.style.overflow = 'unset';\n  };\n\n  // コンポーネントのクリーンアップ\n  React.useEffect(() => {\n    return () => {\n      document.body.style.overflow = 'unset';\n    };\n  }, []);\n\n  return (\n    <>\n      <HeaderContainer>\n        <Nav>\n          <Logo to=\"/\" onClick={closeMobileMenu}>\n            <span>🌾ファンファーム</span>\n          </Logo>\n          \n          {/* デスクトップメニュー */}\n          <DesktopMenuItems>\n            {currentUser ? (\n              <>\n                <MenuItem to=\"/\">ホーム</MenuItem>\n                {currentUser.user_type === 'farmer' && (\n                  <MenuItem to=\"/post-job\">求人を掲載する</MenuItem>\n                )}\n                {currentUser.user_type === 'worker' && (\n                  <MenuItem to=\"/jobs\">求人を探す</MenuItem>\n                )}\n                <MenuItem to=\"/profile\">マイページ</MenuItem>\n                <UserInfo>\n                  <UserName>{currentUser.name}さん</UserName>\n                  <UserType>\n                    {currentUser.user_type === 'farmer' ? '農家' : 'アルバイト'}\n                  </UserType>\n                </UserInfo>\n                <LogoutButton secondary onClick={handleLogout}>\n                  ログアウト\n                </LogoutButton>\n              </>\n            ) : (\n              <>\n                <MenuItem to=\"/login\">ログイン</MenuItem>\n                <MenuItem to=\"/register\">新規登録</MenuItem>\n              </>\n            )}\n          </DesktopMenuItems>\n\n          {/* モバイルメニューボタン */}\n          <MobileMenuButton onClick={toggleMobileMenu} aria-label=\"メニュー\">\n            <HamburgerIcon $isOpen={mobileMenuOpen}>\n              <span></span>\n              <span></span>\n              <span></span>\n            </HamburgerIcon>\n          </MobileMenuButton>\n        </Nav>\n      </HeaderContainer>\n\n      {/* オーバーレイ - メニューの下に配置 */}\n      <Overlay $isOpen={mobileMenuOpen} onClick={closeMobileMenu} />\n\n      {/* モバイルメニュー - オーバーレイの上に配置 */}\n      <MobileMenu $isOpen={mobileMenuOpen}>\n        <MobileMenuContent>\n          {currentUser ? (\n            <>\n              <UserInfo>\n                <UserName>{currentUser.name}さん</UserName>\n                <UserType>\n                  {currentUser.user_type === 'farmer' ? '農家' : 'アルバイト'}\n                </UserType>\n              </UserInfo>\n              <MenuItem to=\"/\" onClick={closeMobileMenu}>🏠 ホーム</MenuItem>\n              {currentUser.user_type === 'farmer' && (\n                <MenuItem to=\"/post-job\" onClick={closeMobileMenu}>📝 求人を掲載する</MenuItem>\n              )}\n              {currentUser.user_type === 'worker' && (\n                <MenuItem to=\"/jobs\" onClick={closeMobileMenu}>🔍 求人を探す</MenuItem>\n              )}\n              <MenuItem to=\"/profile\" onClick={closeMobileMenu}>👤 マイページ</MenuItem>\n              <LogoutButton secondary onClick={handleLogout}>\n                ログアウト\n              </LogoutButton>\n            </>\n          ) : (\n            <>\n              <MenuItem to=\"/login\" onClick={closeMobileMenu}>🔑 ログイン</MenuItem>\n              <MenuItem to=\"/register\" onClick={closeMobileMenu}>✨ 新規登録</MenuItem>\n            </>\n          )}\n        </MobileMenuContent>\n      </MobileMenu>\n    </>\n  );\n};\n\nexport default Header;\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}