Skip to content

Commit 9304de1

Browse files
committed
feat: overlayRender 参数中增加当前预览图片是否正在加载中属性 loading
1 parent 0343fb1 commit 9304de1

File tree

5 files changed

+19
-1
lines changed

5 files changed

+19
-1
lines changed

apps/example/pages/docs/getting-started.en-US.mdx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,7 @@ Add a `scale` control to achieve zoom in and out buttons:
151151

152152
The parameters provided by the `toolbarRender` function are:
153153

154+
- `loading` - Whether the current preview picture is loading `boolean`
154155
- `mode` - current mode `drag` | `slide`
155156
- `images` - list of images `DataType[]`
156157
- `index` - the current index `number`

apps/example/pages/docs/getting-started.zh-CN.mdx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,7 @@ export default function MyComponent() {
150150

151151
`toolbarRender` 函数提供的参数有:
152152

153+
- `loading` - 当前预览图片是否加载中 `boolean`
153154
- `mode` - 当前模式 `drag` | `slide`
154155
- `images` - 图片列表 `DataType[]`
155156
- `index` - 当前索引 `number`

packages/react-photo-view/src/PhotoBox.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -442,10 +442,14 @@ export default function PhotoBox({
442442

443443
useIsomorphicLayoutEffect(() => {
444444
if (isActive) {
445-
expose({ scale, rotate, ...fn })
445+
expose({ scale, rotate, loading: !loaded, ...fn })
446446
}
447447
}, [isActive])
448448

449+
useIsomorphicLayoutEffect(() => {
450+
expose({ loading: !loaded })
451+
}, [loaded])
452+
449453
function handlePhotoLoad(params: IPhotoLoadedParams) {
450454
updateState({
451455
...params,

packages/react-photo-view/src/PhotoSlider.tsx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@ export interface IPhotoSliderProps extends PhotoProviderBase {
4242
}
4343

4444
type PhotoSliderState = {
45+
// 当前预览图片是否加载中
46+
loading: boolean
4547
// 偏移量
4648
x: number
4749
// 偏移量
@@ -73,6 +75,7 @@ type PhotoSliderState = {
7375
}
7476

7577
const initialState: PhotoSliderState = {
78+
loading: false,
7679
x: 0,
7780
y: 0,
7881
touched: false,
@@ -150,6 +153,8 @@ export default function PhotoSlider(props: IPhotoSliderProps) {
150153
const [innerIndex, updateInnerIndex] = useState(0)
151154

152155
const {
156+
loading,
157+
153158
x,
154159
y,
155160
touched,
@@ -388,6 +393,7 @@ export default function PhotoSlider(props: IPhotoSliderProps) {
388393
// 覆盖物参数
389394
const overlayParams: OverlayRenderProps | undefined = onScale &&
390395
onRotate && {
396+
loading,
391397
mode: isDragMode ? 'drag' : 'slide',
392398
images,
393399
index,

packages/react-photo-view/src/types.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,10 @@ export interface BrokenElementParams {
131131
}
132132

133133
export interface OverlayRenderProps {
134+
/**
135+
* 当前预览图片是否加载中
136+
*/
137+
loading: boolean
134138
/**
135139
* 当前模式
136140
*/
@@ -182,6 +186,8 @@ export interface OverlayRenderProps {
182186
}
183187

184188
export interface ExposedProperties {
189+
// 是否加载中
190+
loading?: boolean
185191
// 缩放
186192
scale?: number
187193
// 旋转

0 commit comments

Comments
 (0)