From 17c1f5bc1552b7a364af0fbf52c30286cbf10d62 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 27 Sep 2025 15:11:37 +0000 Subject: [PATCH 1/3] Initial plan From bd6d3d672ada9a7e761325f8bb2e9f7420b4d9a7 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 27 Sep 2025 15:17:38 +0000 Subject: [PATCH 2/3] Initial analysis: Add language toggle to mobile header Co-authored-by: abap34 <53076594+abap34@users.noreply.github.com> --- package-lock.json | 3 +++ src/components/SearchResult.js | 12 ------------ 2 files changed, 3 insertions(+), 12 deletions(-) diff --git a/package-lock.json b/package-lock.json index 43902175..4c6d6560 100644 --- a/package-lock.json +++ b/package-lock.json @@ -33,6 +33,9 @@ "react-use": "^17.5.1", "web-vitals": "^2.1.4", "yaml": "^2.5.1" + }, + "engines": { + "node": ">=22.0.0" } }, "node_modules/@adobe/css-tools": { diff --git a/src/components/SearchResult.js b/src/components/SearchResult.js index 91a3ab8e..272dcd7d 100644 --- a/src/components/SearchResult.js +++ b/src/components/SearchResult.js @@ -97,19 +97,7 @@ function searchPostsByTags(posts, tags) { }, posts); } -function findHighlightedText(content, query) { - const isMatch = content.toLowerCase().includes(query.toLowerCase()); - const index = content.toLowerCase().indexOf(query.toLowerCase()); - const start = Math.max(0, index - 10); - const end = Math.min(content.length, index + query.length + 100); - const before = content.slice(start, index); - - const match = content.slice(index, index + query.length); - const after = content.slice(index + query.length, end); - - return { isMatch, before, match, after }; -} // ドメイン名を抽出する関数 function extractDomain(url) { From cbaf6bbb92da400f50a87de673de7eb18f796898 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 27 Sep 2025 15:22:14 +0000 Subject: [PATCH 3/3] Add language toggle button to mobile header Co-authored-by: abap34 <53076594+abap34@users.noreply.github.com> --- src/components/Header.css | 14 ++++++++++++++ src/components/Header.js | 9 +++++++++ 2 files changed, 23 insertions(+) diff --git a/src/components/Header.css b/src/components/Header.css index a8375adf..386b275a 100644 --- a/src/components/Header.css +++ b/src/components/Header.css @@ -39,6 +39,20 @@ margin-left: 0.5rem; } +.header-language-toggle { + font-size: 14px; + padding: 0.4rem 0.6rem; + border: 1px solid var(--foreground2); + border-radius: 4px; + background-color: var(--background1); + transition: all 0.2s ease; +} + +.header-language-toggle:hover { + background-color: var(--background2); + border-color: var(--foreground1); +} + @media (min-width: 768px) { .header { display: none; diff --git a/src/components/Header.js b/src/components/Header.js index fbffb503..95b7e519 100644 --- a/src/components/Header.js +++ b/src/components/Header.js @@ -1,9 +1,11 @@ import { useContext, useState } from 'react'; import SidebarContext from '../context/SidebarContext'; +import LanguageContext from '../context/LanguageContext'; import './Header.css'; export default function Header() { const { toggleSidebar } = useContext(SidebarContext); + const { language, toggleLanguage } = useContext(LanguageContext); const [isThree, setIsThree] = useState(true); const handlePlusClick = () => { @@ -22,6 +24,13 @@ export default function Header() { +