"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
    return new (P || (P = Promise))(function (resolve, reject) {
        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
        step((generator = generator.apply(thisArg, _arguments || [])).next());
    });
};
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.ImageEditor = void 0;
const react_1 = __importDefault(require("react"));
const ImageSelector_1 = require("./ImageSelector");
const ImageUpload_1 = require("./ImageUpload");
const react_redux_1 = require("react-redux");
const react_redux_2 = require("@nimles/react-redux");
const ImagePreview_1 = require("./ImagePreview");
const ImageEditor = ({ value, onChange, organizationId }) => {
    const dispatch = (0, react_redux_1.useDispatch)();
    const imageId = value === null || value === void 0 ? void 0 : value.split('/').reverse().find((x) => x);
    const handleUpload = (data, file) => __awaiter(void 0, void 0, void 0, function* () {
        yield dispatch((0, react_redux_2.createFile)({
            uri: data,
            name: file.name,
            mimeType: file.type,
            size: file.size,
            fileName: file.name,
            organizationId,
            accessibility: 'Public',
        }));
    });
    return (<div>
      {value && <ImagePreview_1.ImagePreview value={value}/>}

      <ImageSelector_1.ImageSelector selected={imageId} onSelect={onChange}/>
      <ImageUpload_1.ImageUpload onUpload={handleUpload}/>
    </div>);
};
exports.ImageEditor = ImageEditor;
//# sourceMappingURL=ImageEditor.jsx.map