Skip to content

Background

import { ReactSketchCanvas } from "react-sketch-canvas";
import { type ChangeEvent, useState } from "react";

const somePreserveAspectRatio = [
  "none",
  "xMinYMin",
  "xMidYMin",
  "xMaxYMin",
  "xMinYMid",
  "xMidYMid",
  "xMaxYMid",
  "xMinYMax",
  "xMidYMax",
  "xMaxYMax",
] as const;

type SomePreserveAspectRatio = (typeof somePreserveAspectRatio)[number];

export default function App() {
  const [backgroundImage, setBackgroundImage] = useState(
    "https://images.pexels.com/photos/1193743/pexels-photo-1193743.jpeg?cs=srgb&fm=jpg",
  );
  const [preserveAspectRatio, setPreserveAspectRatio] =
    useState<SomePreserveAspectRatio>("none");

  const handlePreserveAspectRatioChange = (
    event: ChangeEvent<HTMLSelectElement>,
  ) => {
    setPreserveAspectRatio(event.target.value as SomePreserveAspectRatio);
  };

  const handleBackgroundImageChange = (
    event: ChangeEvent<HTMLInputElement>,
  ) => {
    setBackgroundImage(event.target.value);
  };

  return (
    <div className="d-flex flex-column gap-2 p-2">
      <h1>Tools</h1>
      <div className="d-flex gap-2 flex-column">
        <div className="mb-3">
          <label htmlFor="backgroundImage" className="form-label">
            Background Image
          </label>
          <input
            type="text"
            className="form-control"
            id="backgroundImage"
            placeholder="URL of the image to use as a background"
            value={backgroundImage}
            onChange={handleBackgroundImageChange}
          />
        </div>
        <label htmlFor="preserveAspectRatio" className="form-label">
          Preserve Aspect Ratio
        </label>
        <select
          id="preserveAspectRatio"
          className="form-select form-select-sm"
          aria-label="Preserve Aspect Ratio options"
          value={preserveAspectRatio}
          onChange={handlePreserveAspectRatioChange}
        >
          {somePreserveAspectRatio.map((value) => (
            <option key={value} value={value}>
              {value}
            </option>
          ))}
        </select>
      </div>
      <h1>Canvas</h1>
      <ReactSketchCanvas
        backgroundImage={backgroundImage}
        preserveBackgroundImageAspectRatio={preserveAspectRatio}
      />
    </div>
  );
}

Data URI as Background

import { ReactSketchCanvas } from "react-sketch-canvas";
import { type ChangeEvent, useState } from "react";

const somePreserveAspectRatio = [
  "none",
  "xMinYMin",
  "xMidYMin",
  "xMaxYMin",
  "xMinYMid",
  "xMidYMid",
  "xMaxYMid",
  "xMinYMax",
  "xMidYMax",
  "xMaxYMax",
] as const;

type SomePreserveAspectRatio = (typeof somePreserveAspectRatio)[number];

export default function App() {
  const [bgDataURI, setBgDataURI] = useState(
    "data:image/png;base64,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",
  );
  const [preserveAspectRatio, setPreserveAspectRatio] =
    useState<SomePreserveAspectRatio>("xMidYMid");

  const handlePreserveAspectRatioChange = (
    event: ChangeEvent<HTMLSelectElement>,
  ) => {
    setPreserveAspectRatio(event.target.value as SomePreserveAspectRatio);
  };

  const handleBackgroundImageChange = (
    event: ChangeEvent<HTMLInputElement>,
  ) => {
    setBgDataURI(event.target.value);
  };

  return (
    <div className="d-flex flex-column gap-2 p-2">
      <h1>Tools</h1>
      <div className="d-flex gap-2 flex-column">
        <div className="mb-3">
          <label htmlFor="bgDataURI" className="form-label">
            Background Data URI
          </label>
          <input
            type="text"
            className="form-control"
            id="bgDataURI"
            placeholder="Data URI of the image to use as a background"
            value={bgDataURI}
            onChange={handleBackgroundImageChange}
          />
        </div>
        <label htmlFor="preserveAspectRatio" className="form-label">
          Preserve Aspect Ratio
        </label>
        <select
          id="preserveAspectRatio"
          className="form-select form-select-sm"
          aria-label="Preserve Aspect Ratio options"
          value={preserveAspectRatio}
          onChange={handlePreserveAspectRatioChange}
        >
          {somePreserveAspectRatio.map((value) => (
            <option key={value} value={value}>
              {value}
            </option>
          ))}
        </select>
      </div>
      <h1>Canvas</h1>
      <ReactSketchCanvas
        backgroundImage={bgDataURI}
        preserveBackgroundImageAspectRatio={preserveAspectRatio}
      />
    </div>
  );
}