import randomColor from 'randomcolor';

type ColorMode = 'dark' | 'bright' | 'light' | 'random';

/**
 * 获取随机颜色, 刷新页面不变
 * @param seed when passed will cause randomColor to return the same color each time
 */
export function getRandomColor(seed: string, luminosity: ColorMode = 'dark') {
    return randomColor({
        luminosity,
        seed,
    });
}

type Cache = {
    [key: string]: string;
};

const cache: Cache = {};

/**
 * 获取随机颜色, 刷新页面后重新随机
 * @param seed 随机种子
 * @param luminosity 亮度
 */
export function getPerRandomColor(
    seed: string,
    luminosity: ColorMode = 'dark',
) {
    if (cache[seed]) {
        return cache[seed];
    }
    cache[seed] = randomColor({ luminosity });
    return cache[seed];
}
