From 39c56bf97c323c3ead8043a15732c2d794a12679 Mon Sep 17 00:00:00 2001 From: AkiraFukushima Date: Sat, 13 Jan 2024 16:59:01 +0900 Subject: [PATCH] refs #4653 Show thirdparty licenses --- locales/en/translation.json | 3 + package.json | 4 +- renderer/components/Thirdparty.tsx | 28 +++++++ renderer/components/layouts/account.tsx | 17 ++++- thirdparty.json => renderer/thirdparty.json | 0 yarn.lock | 84 ++++++++++----------- 6 files changed, 91 insertions(+), 45 deletions(-) create mode 100644 renderer/components/Thirdparty.tsx rename thirdparty.json => renderer/thirdparty.json (100%) diff --git a/locales/en/translation.json b/locales/en/translation.json index d57e0db2..27ab26b9 100644 --- a/locales/en/translation.json +++ b/locales/en/translation.json @@ -130,6 +130,9 @@ "language": "Language", "font_size": "Font size" }, + "thirdparty": { + "title": "Third-party licenses" + }, "report": { "title": "Report {user}", "detail": "Detail", diff --git a/package.json b/package.json index e47e7e44..db1e27ba 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "private": true, - "name": "whalebird", + "name": "Whalebird", "description": "Electron based Fediverse client application", "version": "6.0.0-rc.2", "author": "Akira Fukushima ", @@ -12,7 +12,7 @@ "postinstall": "electron-builder install-app-deps", "typecheck": "tsc -p renderer --noEmit && tsc -p main --noEmit", "lint": "eslint renderer --ext ts,tsx", - "thirdparty": "license-checker --production --json > thirdparty.json" + "thirdparty": "license-checker --production --json > renderer/thirdparty.json" }, "dependencies": { "@emoji-mart/react": "^1.1.1", diff --git a/renderer/components/Thirdparty.tsx b/renderer/components/Thirdparty.tsx new file mode 100644 index 00000000..ccf1a65d --- /dev/null +++ b/renderer/components/Thirdparty.tsx @@ -0,0 +1,28 @@ +import { Dialog, DialogBody, DialogHeader, List, ListItem } from '@material-tailwind/react' +import { FormattedMessage } from 'react-intl' +import licenses from '../thirdparty.json' + +type Props = { + opened: boolean + close: () => void +} + +export default function Thirdparty(props: Props) { + return ( + + + + + + + {Object.keys(licenses).map(key => ( + +
{key}
+
{licenses[key].licenses}
+
+ ))} +
+
+
+ ) +} diff --git a/renderer/components/layouts/account.tsx b/renderer/components/layouts/account.tsx index 3ab5b45c..daf9bf03 100644 --- a/renderer/components/layouts/account.tsx +++ b/renderer/components/layouts/account.tsx @@ -1,5 +1,5 @@ import { CSSProperties, useContext, useEffect, useRef, useState } from 'react' -import { FaGear, FaPlus, FaTrash } from 'react-icons/fa6' +import { FaGear, FaIdCard, FaPlus, FaTrash } from 'react-icons/fa6' import { Account, db } from '@/db' import NewAccount from '@/components/accounts/New' import Settings from '@/components/Settings' @@ -10,6 +10,7 @@ import generator, { Entity, WebSocketInterface } from 'megalodon' import { Context } from '@/utils/i18n' import { useHotkeys } from 'react-hotkeys-hook' import { Avatar, IconButton, List, ListItem, ListItemPrefix, Popover, PopoverContent, PopoverHandler } from '@material-tailwind/react' +import Thirdparty from '../Thirdparty' type LayoutProps = { children: React.ReactNode @@ -19,6 +20,7 @@ export default function Layout({ children }: LayoutProps) { const [accounts, setAccounts] = useState>([]) const [openNewModal, setOpenNewModal] = useState(false) const [openSettings, setOpenSettings] = useState(false) + const [openThirdparty, setOpenThirdparty] = useState(false) const [style, setStyle] = useState({}) const [openPopover, setOpenPopover] = useState(false) @@ -183,6 +185,18 @@ export default function Layout({ children }: LayoutProps) { + { + setOpenThirdparty(true) + setOpenPopover(false) + }} + className="py-2 px-4 rounded-none" + > + + + + + @@ -190,6 +204,7 @@ export default function Layout({ children }: LayoutProps) { {children} setOpenSettings(false)} reloadSettings={loadSettings} /> + setOpenThirdparty(false)} /> ) diff --git a/thirdparty.json b/renderer/thirdparty.json similarity index 100% rename from thirdparty.json rename to renderer/thirdparty.json diff --git a/yarn.lock b/yarn.lock index be6fbf53..6820146a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2675,6 +2675,48 @@ __metadata: languageName: node linkType: hard +"Whalebird@workspace:.": + version: 0.0.0-use.local + resolution: "Whalebird@workspace:." + dependencies: + "@babel/runtime-corejs3": ^7.23.2 + "@electron/notarize": ^2.1.0 + "@emoji-mart/react": ^1.1.1 + "@material-tailwind/react": ^2.1.8 + "@types/node": ^20.0.0 + "@types/react": 18.2.19 + "@types/sanitize-html": ^2.9.4 + "@typescript-eslint/eslint-plugin": ^6.13.1 + "@typescript-eslint/parser": ^6.13.1 + autoprefixer: ^10.4.16 + blurhash: ^2.0.5 + dayjs: ^1.11.10 + dexie: ^3.2.4 + electron: ^26.6.3 + electron-builder: ^24.6.4 + electron-serve: ^1.1.0 + electron-store: ^8.1.0 + emoji-mart: ^5.5.2 + eslint: ^8.55.0 + eslint-config-prettier: ^9.0.0 + eslint-plugin-react: ^7.33.2 + megalodon: ^9.1.1 + next: ^12.3.4 + nextron: ^8.12.0 + postcss: ^8.4.31 + react: ^18.2.0 + react-blurhash: ^0.3.0 + react-dom: ^18.2.0 + react-hotkeys-hook: ^4.4.1 + react-icons: ^4.11.0 + react-intl: ^6.5.1 + react-virtuoso: ^4.6.2 + sanitize-html: ^2.11.0 + tailwindcss: ^3.3.3 + typescript: ^5.2.2 + languageName: unknown + linkType: soft + "abbrev@npm:^2.0.0": version: 2.0.0 resolution: "abbrev@npm:2.0.0" @@ -8338,48 +8380,6 @@ __metadata: languageName: node linkType: hard -"whalebird@workspace:.": - version: 0.0.0-use.local - resolution: "whalebird@workspace:." - dependencies: - "@babel/runtime-corejs3": ^7.23.2 - "@electron/notarize": ^2.1.0 - "@emoji-mart/react": ^1.1.1 - "@material-tailwind/react": ^2.1.8 - "@types/node": ^20.0.0 - "@types/react": 18.2.19 - "@types/sanitize-html": ^2.9.4 - "@typescript-eslint/eslint-plugin": ^6.13.1 - "@typescript-eslint/parser": ^6.13.1 - autoprefixer: ^10.4.16 - blurhash: ^2.0.5 - dayjs: ^1.11.10 - dexie: ^3.2.4 - electron: ^26.6.3 - electron-builder: ^24.6.4 - electron-serve: ^1.1.0 - electron-store: ^8.1.0 - emoji-mart: ^5.5.2 - eslint: ^8.55.0 - eslint-config-prettier: ^9.0.0 - eslint-plugin-react: ^7.33.2 - megalodon: ^9.1.1 - next: ^12.3.4 - nextron: ^8.12.0 - postcss: ^8.4.31 - react: ^18.2.0 - react-blurhash: ^0.3.0 - react-dom: ^18.2.0 - react-hotkeys-hook: ^4.4.1 - react-icons: ^4.11.0 - react-intl: ^6.5.1 - react-virtuoso: ^4.6.2 - sanitize-html: ^2.11.0 - tailwindcss: ^3.3.3 - typescript: ^5.2.2 - languageName: unknown - linkType: soft - "which-boxed-primitive@npm:^1.0.2": version: 1.0.2 resolution: "which-boxed-primitive@npm:1.0.2"