"use strict";
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const jsxDevRuntime = require("react/jsx-dev-runtime");
const reactBinding = require("@contember/react-binding");
const ui = require("@contember/ui");
const react = require("react");
const SelectFileDialog = require("./SelectFileDialog.cjs");
const SelectFileInput = reactBinding.Component(
  ({
    formatMessage,
    insertSelectedText,
    onSelectConfirm,
    selectButtonComponent: SelectButton = ui.Button,
    selectButtonComponentExtraProps,
    selectButtonProps,
    selectButtonText: selectButtonTextProp,
    isMultiple,
    fileSelection
  }) => {
    const { openDialog } = ui.useDialog();
    const selectButtonText = formatMessage(selectButtonTextProp, "upload.selectButton.text");
    const accessorTree = reactBinding.useAccessorTreeState();
    const onClick = react.useCallback(async (event) => {
      event.stopPropagation();
      const selectedEntities = await openDialog({
        type: "captivating",
        bare: true,
        content: (props) => /* @__PURE__ */ jsxDevRuntime.jsxDEV(reactBinding.AccessorTree, { state: accessorTree, children: /* @__PURE__ */ jsxDevRuntime.jsxDEV(
          SelectFileDialog.SelectFileDialog,
          {
            formatMessage,
            onCancel: () => props.resolve(),
            onSelect: props.resolve,
            insertSelectedText,
            selectButtonText,
            isMultiple,
            ...fileSelection
          },
          void 0,
          false,
          {
            fileName: "/__w/interface/interface/packages/admin/src/components/bindingFacade/upload/internalComponents/selection/SelectFileInput.tsx",
            lineNumber: 61,
            columnNumber: 7
          },
          void 0
        ) }, void 0, false, {
          fileName: "/__w/interface/interface/packages/admin/src/components/bindingFacade/upload/internalComponents/selection/SelectFileInput.tsx",
          lineNumber: 60,
          columnNumber: 6
        }, void 0)
      });
      if (selectedEntities !== void 0) {
        onSelectConfirm(selectedEntities);
      }
    }, [accessorTree, fileSelection, formatMessage, insertSelectedText, isMultiple, onSelectConfirm, openDialog, selectButtonText]);
    return /* @__PURE__ */ jsxDevRuntime.jsxDEV(
      SelectButton,
      {
        ...selectButtonComponentExtraProps,
        size: "small",
        children: selectButtonText,
        onClick,
        ...selectButtonProps
      },
      void 0,
      false,
      {
        fileName: "/__w/interface/interface/packages/admin/src/components/bindingFacade/upload/internalComponents/selection/SelectFileInput.tsx",
        lineNumber: 79,
        columnNumber: 4
      },
      void 0
    );
  },
  () => {
    return null;
  },
  "SelectFileInput"
);
exports.SelectFileInput = SelectFileInput;
//# sourceMappingURL=SelectFileInput.cjs.map
