Skip to content

Commit 1efcbb4

Browse files
committed
docs: add focusObjects prop for customizing object-based focus selections
1 parent 4495ffd commit 1efcbb4

File tree

3 files changed

+22
-9
lines changed

3 files changed

+22
-9
lines changed

README.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,7 @@ export default ImageEditor;
130130
| `signer` | `Signer` || Function to generate signed URLs for private images |
131131
| `onAddImage` | `() => void` || Callback function for adding new images |
132132
| `exportOptions` | `ExportOptions` || Configuration for export functionality |
133+
| `focusObjects` | `string[]` || Custom list of selectable focus objects for object-based focus |
133134

134135
### ImageKitEditor Ref Methods
135136

@@ -181,6 +182,19 @@ exportOptions={{
181182
}}
182183
```
183184

185+
### Focus Objects
186+
187+
You can override the list of selectable focus objects used when a transformation's focus is set to "Object" (e.g., Maintain Aspect Ratio, Forced Crop, Extract). If not provided, the editor defaults to ImageKit's supported objects (e.g., person, bicycle, car, dog, etc.).
188+
189+
See the supported object list in the ImageKit docs: https://imagekit.io/docs/image-resize-and-crop#supported-object-list
190+
191+
```tsx
192+
<ImageKitEditor
193+
focusObjects={["person", "cat", "car", "customObject"]}
194+
// ... other props
195+
/>
196+
```
197+
184198
### File Element Interface
185199

186200
For advanced use cases with metadata and signed URLs:

packages/imagekit-editor-dev/src/ImageKitEditor.tsx

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import type { HeaderProps } from "./components/header"
77
import type { DEFAULT_FOCUS_OBJECTS } from "./schema"
88
import {
99
type FileElement,
10+
type FocusObjects,
1011
type RequiredMetadata,
1112
type Signer,
1213
useEditorStore,
@@ -25,9 +26,7 @@ interface EditorProps<Metadata extends RequiredMetadata = RequiredMetadata> {
2526
signer?: Signer<Metadata>
2627
onAddImage?: () => void
2728
exportOptions?: HeaderProps["exportOptions"]
28-
focusObjects?: ReadonlyArray<
29-
(typeof DEFAULT_FOCUS_OBJECTS)[number] | (string & {})
30-
>
29+
focusObjects?: ReadonlyArray<FocusObjects>
3130
onClose: (args: { dirty: boolean; destroy: () => void }) => void
3231
}
3332

packages/imagekit-editor-dev/src/store.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,10 @@ interface InternalState {
5858
| null
5959
}
6060

61+
export type FocusObjects =
62+
| (typeof DEFAULT_FOCUS_OBJECTS)[number]
63+
| (string & {})
64+
6165
export interface EditorState<
6266
Metadata extends RequiredMetadata = RequiredMetadata,
6367
> {
@@ -72,9 +76,7 @@ export interface EditorState<
7276
signingAbortControllers: Record<string, AbortController>
7377
signedUrlCache: Record<string, string>
7478
currentTransformKey: string
75-
focusObjects?: ReadonlyArray<
76-
(typeof DEFAULT_FOCUS_OBJECTS)[number] | (string & {})
77-
>
79+
focusObjects?: ReadonlyArray<FocusObjects>
7880
_internalState: InternalState
7981
}
8082

@@ -84,9 +86,7 @@ export type EditorActions<
8486
initialize: (initialData?: {
8587
imageList?: Array<string | FileElement<Metadata>>
8688
signer?: Signer<Metadata>
87-
focusObjects?: ReadonlyArray<
88-
(typeof DEFAULT_FOCUS_OBJECTS)[number] | (string & {})
89-
>
89+
focusObjects?: ReadonlyArray<FocusObjects>
9090
}) => void
9191
destroy: () => void
9292
setCurrentImage: (imageSrc: string | undefined) => void

0 commit comments

Comments
 (0)