From b1c1d69ee2f9dd5ac0baff2487e2210459d82680 Mon Sep 17 00:00:00 2001 From: miniers Date: Mon, 31 Jul 2023 17:26:42 +0800 Subject: [PATCH] Token Adds Option to Quickly Copy AMA and OpenCat URL Scheme --- web/src/components/TokensTable.js | 70 ++++++++++++++++++++++++------- 1 file changed, 54 insertions(+), 16 deletions(-) diff --git a/web/src/components/TokensTable.js b/web/src/components/TokensTable.js index b42f7df8..2cb6953d 100644 --- a/web/src/components/TokensTable.js +++ b/web/src/components/TokensTable.js @@ -1,5 +1,5 @@ import React, { useEffect, useState } from 'react'; -import { Button, Form, Label, Modal, Pagination, Popup, Table } from 'semantic-ui-react'; +import { Button, Form, Label, Modal, Pagination, Popup, Table, Dropdown } from 'semantic-ui-react'; import { Link } from 'react-router-dom'; import { API, copy, showError, showSuccess, showWarning, timestamp2string } from '../helpers'; @@ -70,6 +70,32 @@ const TokensTable = () => { await loadTokens(activePage - 1); } + const onCopy = async (type,key)=>{ + let status = localStorage.getItem('status'); + let server_address=""; + if (status) { + status = JSON.parse(status); + server_address = encodeURIComponent(status.server_address) + } + let url; + switch (type){ + case 'ama': + url=`ama://set-api-key?server=${server_address}&key=sk-${key}` + break; + case 'opencat': + url=`opencat://team/join?domain=${server_address}&token=sk-${key}` + break + default: + url=`sk-${key}` + } + if (await copy(url)) { + showSuccess('已复制到剪贴板!'); + } else { + showWarning('无法复制到剪贴板,请手动复制,已将令牌填入搜索框。'); + setSearchKeyword(url); + } + } + useEffect(() => { loadTokens(0) .then() @@ -147,6 +173,11 @@ const TokensTable = () => { setTokens(sortedTokens); setLoading(false); }; + const copy_actions = [ + { key: 'ama', text: 'AMA 问天', value: 'ama' }, + { key: 'opencat', text: 'OpenCat', value: 'opencat' }, + ] + return ( <> @@ -235,21 +266,28 @@ const TokensTable = () => { {token.expired_time === -1 ? '永不过期' : renderTimestamp(token.expired_time)}
- + + + { + await onCopy(value, token.key) + }} + trigger={<>} + /> + + {' '}