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());
    });
};
import React from "react";
import { ImageSelector } from "./ImageSelector";
import { ImageUpload } from "./ImageUpload";
import { createFile, useAppDispatch } from "@nimles/react-redux";
import { ImagePreview } from "./ImagePreview";
export const ImageEditor = ({ value, onChange, organizationId }) => {
    const dispatch = useAppDispatch();
    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(createFile({
            uri: data,
            name: file.name,
            mimeType: file.type,
            size: file.size,
            fileName: file.name,
            organizationId,
            accessibility: "Public",
        }));
    });
    return (<div>
      {value && <ImagePreview value={value}/>}

      <ImageSelector selected={imageId} onSelect={onChange}/>
      <ImageUpload onUpload={handleUpload}/>
    </div>);
};
//# sourceMappingURL=ImageEditor.jsx.map