{dragHandle ? (
{dragHandle}
) : null}
{character ? (
<>
img]:p-0",
teamLayout && "col-span-2 row-span-2",
)}
onValueChange={(catalogKey) => {
if (catalogKey)
updateCharacter({
catalogKey,
weaponKey: null,
artifactKey: null,
constellationLevel: 0,
refinement: 1,
});
}}
/>
{teamLayout ? (
updateCharacter({
weaponKey: weaponKey || null,
refinement: weaponKey
? item.kind === "character"
? (item.refinement ?? 1)
: 1
: null,
})
}
/>
updateCharacter({ artifactKey: artifactKey || null })
}
/>
) : (
updateCharacter({ artifactKey: artifactKey || null })
}
/>
updateCharacter({
weaponKey: weaponKey || null,
refinement: weaponKey
? item.kind === "character"
? (item.refinement ?? 1)
: 1
: null,
})
}
/>
)}
{teamLayout && item.kind === "character" ? (
updateCharacter({
constellationLevel: Number(next),
})
}
triggerProps={{
size: "sm",
className: "h-7 min-w-0 justify-center px-1 text-xs",
}}
/>
updateCharacter({
refinement: Number(next),
})
}
triggerProps={{
size: "sm",
className: "h-7 min-w-0 justify-center px-1 text-xs",
}}
/>
) : (
{character.name}
{item.kind === "character" && item.constellationLevel !== null ? (
C{item.constellationLevel}
) : null}
)}
>
) : (
{item.kind === "weapon" ? (
<>
{
if (catalogKey) onChange({ ...item, catalogKey });
}}
/>
{weapons.find((entry) => entry.key === item.catalogKey)?.name ??
item.catalogKey}
>
) : null}
{item.kind === "artifact" ? (
<>
{
if (catalogKey) onChange({ ...item, catalogKey });
}}
/>
{artifacts.find((entry) => entry.key === item.catalogKey)
?.name ?? item.catalogKey}
>
) : null}
{item.kind === "element" ? (
<>
{elementSource?.elementIconUrl ? (
) : null}
onChange({
...item,
element: element as (typeof stygianElements)[number],
})
}
triggerProps={{
size: "sm",
className: "h-7 w-full justify-center px-1 text-xs",
}}
/>
>
) : null}
)}
);
}
function SortableRecommendation({
id,
children,
}: {
id: string;
children: (dragHandle: ReactNode) => ReactNode;
}) {
const {
attributes,
listeners,
setNodeRef,
transform,
transition,
isDragging,
} = useSortable({ id });
return (