0
0
mirror of https://github.com/yude-jp/yude.jp synced 2024-11-02 00:18:00 +09:00
yude.jp/pages/components/LangSelector.js

70 lines
2.8 KiB
JavaScript
Raw Normal View History

import React from "react";
import Popper from "popper.js";
2021-02-06 14:05:36 +09:00
import Link from 'next/link';
2021-06-22 10:26:45 +09:00
import { faLanguage } from '@fortawesome/free-solid-svg-icons'
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
2021-12-11 18:55:57 +09:00
// i18n
import { useTranslation, useLanguageQuery, LanguageSwitcher } from 'next-export-i18n';
const Dropdown = ({ color }) => {
// dropdown props
const [dropdownPopoverShow, setDropdownPopoverShow] = React.useState(false);
const btnDropdownRef = React.createRef();
const popoverDropdownRef = React.createRef();
const openDropdownPopover = () => {
new Popper(btnDropdownRef.current, popoverDropdownRef.current, {
placement: "bottom-start"
});
setDropdownPopoverShow(true);
};
const closeDropdownPopover = () => {
setDropdownPopoverShow(false);
};
// bg colors
let bgColor;
color === "white"
? (bgColor = "bg-gray-800")
: (bgColor = "bg-" + color + "-500");
return (
<>
2021-02-06 15:13:53 +09:00
2021-05-26 07:53:02 +09:00
<div className="text-left mr-2 ml-2 my-3 float-right">
2021-06-22 12:27:08 +09:00
<button type="button" className="inline-flex justify-center w-full rounded-md border border-gray-300 dark:border-gray-800 shadow-sm px-2 bg-white text-sm font-medium text-gray-700 hover:bg-gray-50 dark:bg-gray-700 dark:text-white focus:outline-none" id="options-menu" aria-haspopup="true" aria-expanded="true"
2021-02-06 15:13:53 +09:00
style={{ transition: "all .15s ease" }}
ref={btnDropdownRef}
onClick={() => {
dropdownPopoverShow
? closeDropdownPopover()
: openDropdownPopover();
}}
>
2021-12-11 21:40:26 +09:00
<FontAwesomeIcon icon={faLanguage} className="text-4xl" />
2021-06-22 10:29:22 +09:00
<svg className="-mr-1 ml-2 h-9 w-3" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true">
2021-02-07 11:28:57 +09:00
<path fillRule="evenodd" d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" clipRule="evenodd" />
2021-02-06 15:13:53 +09:00
</svg>
2021-05-21 18:36:19 +09:00
</button>
2021-02-06 15:13:53 +09:00
<div ref={popoverDropdownRef} className={
(dropdownPopoverShow ? "block " : "hidden ") + "z-10 origin-top-right absolute right-0 mt-2 w-40 rounded-md shadow-lg bg-white ring-1 ring-black ring-opacity-5 dark:bg-gray-700"}>
2021-02-06 15:13:53 +09:00
<div className="py-1" role="menu" aria-orientation="vertical" aria-labelledby="options-menu">
2021-12-11 18:55:57 +09:00
<LanguageSwitcher lang="ja">
<a href="#" className="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 hover:text-gray-700 dark:text-white dark:hover:bg-gray-800" role="menuitem">日本語</a>
2021-12-11 18:55:57 +09:00
</LanguageSwitcher>
<LanguageSwitcher lang="en">
<a href="#" className="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 hover:text-gray-700 dark:text-white dark:hover:bg-gray-800" role="menuitem">English</a>
2021-12-11 18:55:57 +09:00
</LanguageSwitcher>
2021-02-06 15:13:53 +09:00
</div>
</div>
</div>
</>
);
};
export default function LangSelector() {
return (
<>
<Dropdown color="white" />
</>
);
}