import { reactive } from "vue";

type SelectCallback = (url: string) => void;

// Admin medya galerisi için modül-seviyesi paylaşılan durum:
// Field.vue picker'ı açar, MediaPicker.vue seçimi geri bildirir.
const state = reactive({
  visible: false,
  callback: null as SelectCallback | null,
});

export function useMediaPicker() {
  return {
    state,
    open(cb: SelectCallback) {
      state.callback = cb;
      state.visible = true;
    },
    select(url: string) {
      state.callback?.(url);
      state.callback = null;
      state.visible = false;
    },
    close() {
      state.callback = null;
      state.visible = false;
    },
  };
}
