Skip to content

Commit

Permalink
Fix pr #390: Fix issue #389: Jutsu Level Transfer
Browse files Browse the repository at this point in the history
  • Loading branch information
openhands-agent committed Feb 20, 2025
1 parent 0448c59 commit 3610f1a
Showing 1 changed file with 47 additions and 70 deletions.
117 changes: 47 additions & 70 deletions app/src/app/jutsus/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -29,14 +29,10 @@ import { showMutationToast } from "@/libs/toast";
import { JUTSU_XP_TO_LEVEL } from "@/drizzle/constants";
import { COST_EXTRA_JUTSU_SLOT } from "@/drizzle/constants";
import { MAX_EXTRA_JUTSU_SLOTS } from "@/drizzle/constants";
import { JUTSU_TRANSFER_COST } from "@/drizzle/constants";
import { JUTSU_TRANSFER_MAX_LEVEL } from "@/drizzle/constants";
import { JUTSU_TRANSFER_DAYS } from "@/drizzle/constants";
import {
JUTSU_TRANSFER_FREE_GOLD,
JUTSU_TRANSFER_FREE_SILVER,
JUTSU_TRANSFER_FREE_NORMAL,
JUTSU_TRANSFER_FREE_AMOUNT,
JUTSU_TRANSFER_COST,
JUTSU_TRANSFER_MAX_LEVEL,
JUTSU_TRANSFER_DAYS,
} from "@/drizzle/constants";
import { getFreeTransfers } from "@/libs/jutsu";
import JutsuFiltering, { useFiltering, getFilter } from "@/layout/JutsuFiltering";
Expand Down Expand Up @@ -361,79 +357,62 @@ export default function MyJutsu() {

<div className="grow"></div>
{userjutsu.level <= JUTSU_TRANSFER_MAX_LEVEL && (
<Confirm
<Modal
title="Transfer Level"
button={
<Button id="transfer" variant="secondary">
<ArrowRightLeft className="h-6 w-6 mr-2" />
Transfer Level
</Button>
}
proceed_label={
transferTarget ? "Confirm Transfer" : "Select Target"
}
onAccept={(e) => {
e.preventDefault();
proceed_label={transferTarget ? "Confirm Transfer" : undefined}
onAccept={() => {
if (transferTarget) {
transferLevel({
fromJutsuId: userjutsu.jutsuId,
toJutsuId: transferTarget.jutsuId,
levels: transferLevels,
});
} else {
setIsOpen(false);
const filteredJutsus = allJutsu?.filter(
(j) =>
j.jutsuId !== userjutsu.jutsuId &&
j.jutsuType === userjutsu.jutsuType &&
j.jutsuRank === userjutsu.jutsuRank,
);
if (filteredJutsus?.length) {
setTransferTarget(undefined);
setUserJutsu(userjutsu);
setTransferLevels(1);
setIsOpen(true);
} else {
showMutationToast({
success: false,
message: "No compatible jutsu found for transfer",
});
}
}
}}
setIsOpen={() => {
setTransferTarget(undefined);
setTransferLevels(1);
}}
>
{transferTarget ? (
<>
<div className="flex flex-col gap-4">
<div className="flex flex-col gap-2">
<label htmlFor="target-jutsu">Target Jutsu:</label>
<select
id="target-jutsu"
className="p-2 border rounded"
value={transferTarget.jutsuId}
onChange={(e) => {
const selected = allJutsu?.find(
(j) => j.jutsuId === e.target.value
);
if (selected) {
setTransferTarget(selected);
}
}}
>
{allJutsu
?.filter(
(j) =>
j.jutsuId !== userjutsu.jutsuId &&
j.jutsuType === userjutsu.jutsuType &&
j.jutsuRank === userjutsu.jutsuRank
)
.map((j) => (
<option key={j.jutsuId} value={j.jutsuId}>
{j.name} (Level {j.level})
</option>
))}
</select>
</div>
<div className="flex flex-col gap-4">
<div className="flex flex-col gap-2">
<label htmlFor="target-jutsu">Target Jutsu:</label>
<select
id="target-jutsu"
className="p-2 border rounded"
value={transferTarget?.jutsuId || ""}
onChange={(e) => {
const selected = allJutsu?.find(
(j) => j.jutsuId === e.target.value
);
if (selected) {
setTransferTarget(selected);
}
}}
>
<option value="">Select a jutsu...</option>
{allJutsu
?.filter(
(j) =>
j.jutsuId !== userjutsu.jutsuId &&
j.jutsuType === userjutsu.jutsuType &&
j.jutsuRank === userjutsu.jutsuRank
)
.map((j) => (
<option key={j.jutsuId} value={j.jutsuId}>
{j.name} (Level {j.level})
</option>
))}
</select>
</div>
{transferTarget && (
<>
<div className="flex flex-col gap-2">
<label htmlFor="transfer-levels">Levels to Transfer:</label>
<input
Expand All @@ -460,12 +439,10 @@ export default function MyJutsu() {
? `${JUTSU_TRANSFER_COST} reputation points`
: "Free"}
</p>
</div>
</>
) : (
<p>Select a jutsu to transfer the level to.</p>
)}
</Confirm>
</>
)}
</div>
</Modal>
)}
<Confirm
title="Forget Jutsu"
Expand Down

0 comments on commit 3610f1a

Please sign in to comment.