"use client";

import React, {forwardRef} from "react";
import {Select, SelectProps as AntSelectProps} from "antd";
import {cn} from "@/lib/utils";

export interface OptionType {
    label: React.ReactNode;
    value: string | number;
    disabled?: boolean;
    className?: string;
    title?: string;
}

export interface SelectProps extends Omit<AntSelectProps, "bordered"> {
    size?: "large" | "middle" | "small";
    className?: string;
    options?: OptionType[];
}

const AppSelect = forwardRef<any, SelectProps>(
    (
        {className, size = "middle", options, value, defaultValue, loading, ...props},
        ref,
    ) => {


        return (
            <Select
                ref={ref}
                loading={loading}
                value={value || undefined}
                defaultValue={defaultValue || undefined}
                options={options}
                className={cn("!w-full", className)}
                size={size}
                {...props}
            />
        );
    },
);

AppSelect.displayName = "AppSelect";

export default AppSelect;
