7.11.0 • Published 3 months ago

rc-image v7.11.0

Weekly downloads
313,972
License
MIT
Repository
github
Last release
3 months ago

rc-image

React Image.

NPM version npm download build status Codecov bundle size dumi

Feature

  • Placeholder
  • Preview
  • Rotate
  • Zoom
  • Flip
  • Fallback
  • Multiple Preview

install

rc-image

Usage

npm install
npm start
import Image from 'rc-image';

export default () => (
  <Image src="https://zos.alipayobjects.com/rmsportal/jkjgkEfvpUPVyRjUImniVslZfWPnJuuZ.png" />
);

API

NameTypeDefaultDescription
previewboolean | PreviewTypetrueWhether to show preview
prefixClsstringrc-imageClassname prefix
placeholderboolean | ReactElement-if true will set default placeholder or use ReactElement set customize placeholder
fallbackstring-Load failed src
previewPrefixClsstringrc-image-previewPreview classname prefix
onError(event: Event) => void-Load failed callback

PreviewType

NameTypeDefaultDescription
visibleboolean-Whether the preview is open or not
closeIconReact.ReactNode-Custom close icon
srcstring-Customize preview src
movablebooleantrueEnable drag
scaleStepnumber0.5The number to which the scale is increased or decreased
minScalenumber1Min scale
maxScalenumber50Max scale
forceRenderboolean-Force render preview
getContainerstring | HTMLElement | (() => HTMLElement) | falsedocument.bodyReturn the mount node for preview
imageRender(originalNode: React.ReactElement, info: { transform: TransformType }) => React.ReactNode-Customize image
toolbarRender(originalNode: React.ReactElement, info: Omit<ToolbarRenderInfoType, 'current' | 'total'>) => React.ReactNode-Customize toolbar
onVisibleChange(visible: boolean, prevVisible: boolean) => void-Callback when visible is changed
onTransform{ transform: TransformType, action: TransformAction }-Callback when transform is changed

Image.PreviewGroup

preview the merged src

import Image from 'rc-image';

export default () => (
  <Image.PreviewGroup>
    <Image src="https://zos.alipayobjects.com/rmsportal/jkjgkEfvpUPVyRjUImniVslZfWPnJuuZ.png" />
    <Image src="https://gw.alipayobjects.com/mdn/rms_08e378/afts/img/A*P0S-QIRUbsUAAAAAAAAAAABkARQnAQ" />
  </Image.PreviewGroup>
);

API

NameTypeDefaultDescription
previewboolean | PreviewGroupTypetrueWhether to show preview, current: If Preview the show img index, default 0
previewPrefixClsstringrc-image-previewPreview classname prefix
icons{ iconKey?: ReactNode }-Icons in the top operation bar, iconKey: 'rotateLeft' | 'rotateRight' | 'zoomIn' | 'zoomOut' | 'close' | 'left' | 'right'
fallbackstring-Load failed src
items(string | { src: string, alt: string, crossOrigin: string, ... })[]-preview group

PreviewGroupType

NameTypeDefaultDescription
visibleboolean-Whether the preview is open or not
movablebooleantrueEnable drag
currentnumber-Current index
closeIconReact.ReactNode-Custom close icon
scaleStepnumber0.5The number to which the scale is increased or decreased
minScalenumber1Min scale
maxScalenumber50Max scale
forceRenderboolean-Force render preview
getContainerstring | HTMLElement | (() => HTMLElement) | falsedocument.bodyReturn the mount node for preview
countRender(current: number, total: number) => ReactNode-Customize count
imageRender(originalNode: React.ReactElement, info: { transform: TransformType, current: number }) => React.ReactNode-Customize image
toolbarRender(originalNode: React.ReactElement, info: ToolbarRenderInfoType) => React.ReactNode-Customize toolbar
onVisibleChange(visible: boolean, prevVisible: boolean, current: number) => void-Callback when visible is changed
onTransform{ transform: TransformType, action: TransformAction }-Callback when transform is changed

TransformType

{
  x: number;
  y: number;
  rotate: number;
  scale: number;
  flipX: boolean;
  flipY: boolean;
}

TransformAction

type TransformAction =
  | 'flipY'
  | 'flipX'
  | 'rotateLeft'
  | 'rotateRight'
  | 'zoomIn'
  | 'zoomOut'
  | 'close'
  | 'prev'
  | 'next'
  | 'wheel'
  | 'doubleClick'
  | 'move'
  | 'dragRebound';

ToolbarRenderInfoType

{
  icons: {
    prevIcon?: React.ReactNode;
    nextIcon?: React.ReactNode;
    flipYIcon: React.ReactNode;
    flipXIcon: React.ReactNode;
    rotateLeftIcon: React.ReactNode;
    rotateRightIcon: React.ReactNode;
    zoomOutIcon: React.ReactNode;
    zoomInIcon: React.ReactNode;
  };
  actions: {
    onActive?: (offset: number) => void;
    onFlipY: () => void;
    onFlipX: () => void;
    onRotateLeft: () => void;
    onRotateRight: () => void;
    onZoomOut: () => void;
    onZoomIn: () => void;
    onClose: () => void;
    onReset: () => void;
  };
  transform: {
    x: number;
    y: number;
    rotate: number;
    scale: number;
    flipX: boolean;
    flipY: boolean;
  },
  current: number;
  total: number;
}

Example

http://localhost:8003/examples/

Test Case

npm test

Coverage

npm run coverage

License

rc-image is released under the MIT license.

7.11.0

3 months ago

7.8.1

7 months ago

7.9.0

7 months ago

7.10.0

6 months ago

7.8.0

7 months ago

7.7.1

7 months ago

7.7.0

8 months ago

7.6.0

10 months ago

7.4.0

1 year ago

7.5.1

1 year ago

7.5.0

1 year ago

7.3.2

1 year ago

7.3.1

1 year ago

7.3.0

1 year ago

6.1.0

1 year ago

7.1.3

1 year ago

7.1.2

1 year ago

7.1.1

1 year ago

7.1.0

1 year ago

5.18.1

2 years ago

5.18.0

2 years ago

6.0.0

2 years ago

7.0.0-0

1 year ago

7.0.0

1 year ago

7.2.0

1 year ago

5.17.1

2 years ago

7.0.0-2

1 year ago

5.16.0

2 years ago

5.14.0

2 years ago

5.15.2

2 years ago

5.15.1

2 years ago

5.13.0

2 years ago

5.11.0

2 years ago

5.12.2

2 years ago

5.12.1

2 years ago

5.12.0

2 years ago

5.10.2

2 years ago

5.10.1

2 years ago

5.10.0

2 years ago

5.8.0

2 years ago

5.9.0

2 years ago

5.6.4

2 years ago

5.6.3

2 years ago

5.7.1

2 years ago

5.7.0

3 years ago

5.6.2

3 years ago

5.6.1

3 years ago

5.6.0

3 years ago

5.5.0

3 years ago

5.4.0

3 years ago

5.3.0

3 years ago

5.2.5

3 years ago

5.2.4

4 years ago

5.2.3

4 years ago

5.2.2

4 years ago

5.2.1

4 years ago

5.2.0

4 years ago

5.1.4

4 years ago

5.1.3

4 years ago

5.1.2

4 years ago

5.1.1

4 years ago

5.0.2

4 years ago

5.0.1

4 years ago

5.1.0

4 years ago

5.0.0

4 years ago

5.0.0-beta.2

4 years ago

5.0.0-beta.3

4 years ago

5.0.0-beta.1

4 years ago

4.6.0

4 years ago

4.5.0

4 years ago

4.4.0

4 years ago

4.3.2

4 years ago

4.3.1

4 years ago

4.3.0

4 years ago

4.2.0

4 years ago

4.1.1

4 years ago

4.1.0

4 years ago

4.0.1

4 years ago

4.0.0

4 years ago

3.3.0

4 years ago

3.2.2

4 years ago

3.2.1

4 years ago

3.2.0

4 years ago

3.1.0

4 years ago

3.0.6

4 years ago

3.0.5

4 years ago

3.0.4

4 years ago

3.0.3

4 years ago

3.0.2

4 years ago

3.0.1

4 years ago

3.0.0

4 years ago

2.0.0

7 years ago

1.0.0

8 years ago