mirror of
https://github.com/hydralauncher/hydra.git
synced 2026-01-10 21:36:17 +00:00
chore: update package.json to use yarn commands for type checking and building
This commit is contained in:
@@ -19,12 +19,12 @@
|
|||||||
"lint": "eslint . --ext .js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix",
|
"lint": "eslint . --ext .js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix",
|
||||||
"typecheck:node": "tsc --noEmit -p tsconfig.node.json --composite false",
|
"typecheck:node": "tsc --noEmit -p tsconfig.node.json --composite false",
|
||||||
"typecheck:web": "tsc --noEmit -p tsconfig.web.json --composite false",
|
"typecheck:web": "tsc --noEmit -p tsconfig.web.json --composite false",
|
||||||
"typecheck": "npm run typecheck:node && npm run typecheck:web",
|
"typecheck": "yarn run typecheck:node && yarn run typecheck:web",
|
||||||
"start": "electron-vite preview",
|
"start": "electron-vite preview",
|
||||||
"dev": "electron-vite dev",
|
"dev": "electron-vite dev",
|
||||||
"build": "npm run typecheck && electron-vite build",
|
"build": "yarn run typecheck && electron-vite build",
|
||||||
"postinstall": "electron-builder install-app-deps && node ./scripts/postinstall.cjs",
|
"postinstall": "electron-builder install-app-deps && node ./scripts/postinstall.cjs",
|
||||||
"build:unpack": "npm run build && electron-builder --dir",
|
"build:unpack": "yarn run build && electron-builder --dir",
|
||||||
"build:win": "electron-vite build && electron-builder --win",
|
"build:win": "electron-vite build && electron-builder --win",
|
||||||
"build:mac": "electron-vite build && electron-builder --mac",
|
"build:mac": "electron-vite build && electron-builder --mac",
|
||||||
"build:linux": "electron-vite build && electron-builder --linux",
|
"build:linux": "electron-vite build && electron-builder --linux",
|
||||||
|
|||||||
@@ -305,9 +305,11 @@ function HeroDownloadView({
|
|||||||
)}
|
)}
|
||||||
</span>
|
</span>
|
||||||
)}
|
)}
|
||||||
<span className="download-group__progress-percentage">
|
{(!lastPacket?.isCheckingFiles || currentProgress > 0) && (
|
||||||
<AnimatedPercentage value={currentProgress} />
|
<span className="download-group__progress-percentage">
|
||||||
</span>
|
<AnimatedPercentage value={currentProgress} />
|
||||||
|
</span>
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
<div className="download-group__progress-bar">
|
<div className="download-group__progress-bar">
|
||||||
<div
|
<div
|
||||||
|
|||||||
@@ -132,116 +132,112 @@ export function UserLibraryGameCard({
|
|||||||
onClick={() => navigate(buildUserGameDetailsPath(game))}
|
onClick={() => navigate(buildUserGameDetailsPath(game))}
|
||||||
title={isTooltipHovered ? undefined : game.title}
|
title={isTooltipHovered ? undefined : game.title}
|
||||||
>
|
>
|
||||||
<div className="user-library-game__overlay">
|
<div className="user-library-game__overlay">
|
||||||
{isMe && (
|
{isMe && (
|
||||||
<div className="user-library-game__actions-container">
|
<div className="user-library-game__actions-container">
|
||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
className="user-library-game__pin-button"
|
className="user-library-game__pin-button"
|
||||||
onClick={(e) => {
|
onClick={(e) => {
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
toggleGamePinned();
|
toggleGamePinned();
|
||||||
}}
|
}}
|
||||||
disabled={isPinning}
|
disabled={isPinning}
|
||||||
>
|
>
|
||||||
{game.isPinned ? (
|
{game.isPinned ? (
|
||||||
<PinSlashIcon size={12} />
|
<PinSlashIcon size={12} />
|
||||||
) : (
|
) : (
|
||||||
<PinIcon size={12} />
|
<PinIcon size={12} />
|
||||||
)}
|
)}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
|
||||||
)}
|
|
||||||
<div
|
|
||||||
className="user-library-game__playtime"
|
|
||||||
data-tooltip-place="top"
|
|
||||||
data-tooltip-content={
|
|
||||||
game.hasManuallyUpdatedPlaytime
|
|
||||||
? t("manual_playtime_tooltip")
|
|
||||||
: undefined
|
|
||||||
}
|
|
||||||
data-tooltip-id={game.objectId}
|
|
||||||
>
|
|
||||||
{game.hasManuallyUpdatedPlaytime ? (
|
|
||||||
<AlertFillIcon
|
|
||||||
size={11}
|
|
||||||
className="user-library-game__manual-playtime"
|
|
||||||
/>
|
|
||||||
) : (
|
|
||||||
<ClockIcon size={11} />
|
|
||||||
)}
|
|
||||||
<span className="user-library-game__playtime-long">
|
|
||||||
{formatPlayTime(game.playTimeInSeconds)}
|
|
||||||
</span>
|
|
||||||
<span className="user-library-game__playtime-short">
|
|
||||||
{formatPlayTime(game.playTimeInSeconds, true)}
|
|
||||||
</span>
|
|
||||||
</div>
|
</div>
|
||||||
|
)}
|
||||||
|
<div
|
||||||
|
className="user-library-game__playtime"
|
||||||
|
data-tooltip-place="top"
|
||||||
|
data-tooltip-content={
|
||||||
|
game.hasManuallyUpdatedPlaytime
|
||||||
|
? t("manual_playtime_tooltip")
|
||||||
|
: undefined
|
||||||
|
}
|
||||||
|
data-tooltip-id={game.objectId}
|
||||||
|
>
|
||||||
|
{game.hasManuallyUpdatedPlaytime ? (
|
||||||
|
<AlertFillIcon
|
||||||
|
size={11}
|
||||||
|
className="user-library-game__manual-playtime"
|
||||||
|
/>
|
||||||
|
) : (
|
||||||
|
<ClockIcon size={11} />
|
||||||
|
)}
|
||||||
|
<span className="user-library-game__playtime-long">
|
||||||
|
{formatPlayTime(game.playTimeInSeconds)}
|
||||||
|
</span>
|
||||||
|
<span className="user-library-game__playtime-short">
|
||||||
|
{formatPlayTime(game.playTimeInSeconds, true)}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
{userProfile?.hasActiveSubscription &&
|
{userProfile?.hasActiveSubscription && game.achievementCount > 0 && (
|
||||||
game.achievementCount > 0 && (
|
<div className="user-library-game__stats">
|
||||||
<div className="user-library-game__stats">
|
<div className="user-library-game__stats-header">
|
||||||
<div className="user-library-game__stats-header">
|
<div className="user-library-game__stats-content">
|
||||||
<div className="user-library-game__stats-content">
|
<div
|
||||||
<div
|
className="user-library-game__stats-item"
|
||||||
className="user-library-game__stats-item"
|
style={{
|
||||||
style={{
|
transform: `translateY(${-100 * (statIndex % getStatsItemCount())}%)`,
|
||||||
transform: `translateY(${-100 * (statIndex % getStatsItemCount())}%)`,
|
}}
|
||||||
}}
|
>
|
||||||
>
|
<TrophyIcon size={13} />
|
||||||
<TrophyIcon size={13} />
|
|
||||||
<span>
|
|
||||||
{game.unlockedAchievementCount} /{" "}
|
|
||||||
{game.achievementCount}
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{game.achievementsPointsEarnedSum > 0 && (
|
|
||||||
<div
|
|
||||||
className="user-library-game__stats-item"
|
|
||||||
style={{
|
|
||||||
transform: `translateY(${-100 * (statIndex % getStatsItemCount())}%)`,
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
<HydraIcon width={16} height={16} />
|
|
||||||
{formatAchievementPoints(
|
|
||||||
game.achievementsPointsEarnedSum
|
|
||||||
)}
|
|
||||||
</div>
|
|
||||||
)}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<span>
|
<span>
|
||||||
{formatDownloadProgress(
|
{game.unlockedAchievementCount} / {game.achievementCount}
|
||||||
game.unlockedAchievementCount / game.achievementCount,
|
|
||||||
1
|
|
||||||
)}
|
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<progress
|
{game.achievementsPointsEarnedSum > 0 && (
|
||||||
max={1}
|
<div
|
||||||
value={
|
className="user-library-game__stats-item"
|
||||||
game.unlockedAchievementCount / game.achievementCount
|
style={{
|
||||||
}
|
transform: `translateY(${-100 * (statIndex % getStatsItemCount())}%)`,
|
||||||
className="user-library-game__achievements-progress"
|
}}
|
||||||
/>
|
>
|
||||||
|
<HydraIcon width={16} height={16} />
|
||||||
|
{formatAchievementPoints(
|
||||||
|
game.achievementsPointsEarnedSum
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
)}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{imageError || !game.coverImageUrl ? (
|
<span>
|
||||||
<div className="user-library-game__cover-placeholder">
|
{formatDownloadProgress(
|
||||||
<ImageIcon size={48} />
|
game.unlockedAchievementCount / game.achievementCount,
|
||||||
|
1
|
||||||
|
)}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<progress
|
||||||
|
max={1}
|
||||||
|
value={game.unlockedAchievementCount / game.achievementCount}
|
||||||
|
className="user-library-game__achievements-progress"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
) : (
|
|
||||||
<img
|
|
||||||
src={game.coverImageUrl}
|
|
||||||
alt={game.title}
|
|
||||||
className="user-library-game__game-image"
|
|
||||||
onError={() => setImageError(true)}
|
|
||||||
/>
|
|
||||||
)}
|
)}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{imageError || !game.coverImageUrl ? (
|
||||||
|
<div className="user-library-game__cover-placeholder">
|
||||||
|
<ImageIcon size={48} />
|
||||||
|
</div>
|
||||||
|
) : (
|
||||||
|
<img
|
||||||
|
src={game.coverImageUrl}
|
||||||
|
alt={game.title}
|
||||||
|
className="user-library-game__game-image"
|
||||||
|
onError={() => setImageError(true)}
|
||||||
|
/>
|
||||||
|
)}
|
||||||
</button>
|
</button>
|
||||||
<Tooltip
|
<Tooltip
|
||||||
id={game.objectId}
|
id={game.objectId}
|
||||||
|
|||||||
Reference in New Issue
Block a user