import { IFigurePartSet } from '@octane/renderer';

export const AvatarEditorPartSorter = (hcFirst: boolean) => {
    return (a: { partSet: IFigurePartSet; usesColor: boolean; isClear?: boolean }, b: { partSet: IFigurePartSet; usesColor: boolean; isClear?: boolean }) => {
        const clubLevelA = !a.partSet ? -1 : a.partSet.clubLevel;
        const clubLevelB = !b.partSet ? -1 : b.partSet.clubLevel;
        const isSellableA = !a.partSet ? false : a.partSet.isSellable;
        const isSellableB = !b.partSet ? false : b.partSet.isSellable;

        if (isSellableA && !isSellableB) return 1;

        if (isSellableB && !isSellableA) return -1;

        if (hcFirst) {
            if (clubLevelA > clubLevelB) return -1;

            if (clubLevelA < clubLevelB) return 1;
        } else {
            if (clubLevelA < clubLevelB) return -1;

            if (clubLevelA > clubLevelB) return 1;
        }

        if (a.partSet.id < b.partSet.id) return -1;

        if (a.partSet.id > b.partSet.id) return 1;

        return 0;
    };
};
