koishi-plugin-beatsaber-bot
Version:
一个 用于 BeatSaber 的 koishi Bot 插件
15 lines (14 loc) • 2.94 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const jsx_runtime_1 = require("react/jsx-runtime");
const lucide_react_1 = require("lucide-react");
const utils_1 = require("../utils");
const getModifiers = (modifiers) => {
return modifiers ? modifiers.split(',') : [];
};
function SsScoreItem({ scoreItem }) {
return ((0, jsx_runtime_1.jsxs)("div", { className: 'relative', children: [(0, jsx_runtime_1.jsxs)("div", { className: "rounded-lg flex bg-black/[.4] space-x-2 backdrop-blur-md overflow-hidden", children: [(0, jsx_runtime_1.jsx)("img", { loading: 'eager', src: scoreItem.leaderboard.coverImage, className: "rounded-md h-20 w-20" }), (0, jsx_runtime_1.jsxs)("div", { className: "flex flex-col space-y-1 py-0.5", children: [(0, jsx_runtime_1.jsx)("div", { className: "font-semibold text-xs text-ellipsis overflow-hidden line-clamp-1 break-all", children: scoreItem.leaderboard.songName }), (0, jsx_runtime_1.jsxs)("div", { className: "text-xs flex items-center space-x-2 *:flex *:items-center *:space-x-1 ", children: [(0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("span", { children: (0, jsx_runtime_1.jsx)(lucide_react_1.BarChart, { className: "w-3 h-3" }) }), (0, jsx_runtime_1.jsx)("span", { children: (0, utils_1.diffConv)(scoreItem.leaderboard.difficulty.difficultyRaw) })] }), (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("span", { children: (0, jsx_runtime_1.jsx)(lucide_react_1.Star, { className: "w-3 h-3" }) }), (0, jsx_runtime_1.jsxs)("span", { children: [scoreItem.leaderboard.stars, " "] })] }), (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("span", { children: (0, jsx_runtime_1.jsx)(lucide_react_1.Key, { className: "w-3 h-3" }) }), (0, jsx_runtime_1.jsx)("span", { children: scoreItem.mapId ?? "unknown" })] })] }), (0, jsx_runtime_1.jsxs)("div", { className: "flex space-x-2 text-xs", children: [(0, jsx_runtime_1.jsxs)("span", { children: [(scoreItem.score.baseScore / scoreItem.leaderboard.maxScore * 100).toFixed(2), "%"] }), (0, jsx_runtime_1.jsxs)("span", { className: "text-orange-200", children: [scoreItem.score.pp.toFixed(1), "PP"] })] }), getModifiers(scoreItem.score.modifiers).length > 0 &&
((0, jsx_runtime_1.jsxs)("div", { className: "text-xs flex flex-wrap space-x-2 items-center", children: [(0, jsx_runtime_1.jsx)(lucide_react_1.Wrench, { className: "h-3 w-3" }), getModifiers(scoreItem.score.modifiers).map(modifier => ((0, jsx_runtime_1.jsx)("span", { children: modifier }, modifier)))] }))] })] }), (0, jsx_runtime_1.jsx)("div", { className: "absolute right-1 bottom-1 text-white flex text-xs space-x-1 items-center", children: scoreItem.score.fullCombo &&
(0, jsx_runtime_1.jsx)("span", { className: "from-blue-300 to-red-300 bg-gradient-to-r bg-clip-text text-transparent", children: "FC" }) })] }));
}
exports.default = SsScoreItem;