@codeleap/mobile 3.9.0 → 3.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codeleap/mobile",
3
- "version": "3.9.0",
3
+ "version": "3.10.1",
4
4
  "main": "src/index.ts",
5
5
  "license": "UNLICENSED",
6
6
  "repository": {
@@ -145,37 +145,41 @@ export const useImageSpotlight = (name: string | null, src: ImageProps['source']
145
145
  }
146
146
  }
147
147
 
148
- type HeaderComponentProps = {
148
+ export type SpotlightHeaderComponent = {
149
149
  imageIndex: number
150
150
  spotlight: ReturnType<typeof useSpotlight>
151
151
  }
152
152
 
153
- type DefaultFooterComponentType = React.ComponentType<{
153
+ export type SpootlightFooterComponent = React.ComponentType<{
154
154
  imageIndex: number
155
155
  imagesLength: number
156
+ spotlight: ReturnType<typeof useSpotlight>
156
157
  }>
157
158
 
158
- type FooterComponentProps = HeaderComponentProps
159
+ type FooterComponentProps = SpotlightHeaderComponent
159
160
 
160
- type SpotlightProps = {
161
+ export type SpotlightProps = {
161
162
  name?: string
162
- HeaderComponent?: (props: HeaderComponentProps) => JSX.Element
163
+ HeaderComponent?: (props: SpotlightHeaderComponent) => JSX.Element
163
164
  FooterComponent?: (props: FooterComponentProps) => JSX.Element
164
165
  showFooter?: boolean
165
166
  } & ImageViewProps
166
167
 
167
- const DefaultFooterComponent: DefaultFooterComponentType = ({ imageIndex, imagesLength }) => (
168
+ const DefaultFooterComponent: SpootlightFooterComponent = ({ imageIndex, imagesLength }) => (
168
169
  <View variants={['marginBottom:5', 'alignCenter']}>
169
170
  <Text text={imageIndex + 1 + '/' + imagesLength} />
170
171
  </View>
171
172
  )
172
173
 
173
- export const Spotlight: React.FC<SpotlightProps> = ({ name, HeaderComponent, FooterComponent, ...rest }) => {
174
+ export const Spotlight = (props: SpotlightProps) => {
175
+ const { name, HeaderComponent, showFooter, FooterComponent, ...rest } = props
174
176
  const spotlight = useSpotlight(name)
177
+
175
178
  useUnmount(() => {
176
179
  spotlight.clear()
177
180
  })
178
181
 
182
+ const Footer = showFooter ? FooterComponent || DefaultFooterComponent : (() => null)
179
183
  return <ImageView
180
184
  imageIndex={spotlight.currentIndex}
181
185
  images={spotlight.images.map(x => x.source)}
@@ -183,10 +187,7 @@ export const Spotlight: React.FC<SpotlightProps> = ({ name, HeaderComponent, Foo
183
187
  onRequestClose={spotlight.close}
184
188
  visible={typeof spotlight.currentIndex !== 'undefined'}
185
189
  {...rest}
186
- FooterComponent={({ imageIndex }) => !!FooterComponent ?
187
- <FooterComponent imageIndex={imageIndex} spotlight={spotlight} /> :
188
- <DefaultFooterComponent imageIndex={imageIndex} imagesLength={spotlight.images.length} />
189
- }
190
+ FooterComponent={({ imageIndex }) => <Footer imageIndex={imageIndex} spotlight={spotlight} imagesLength={spotlight.images.length} />}
190
191
  HeaderComponent={!!HeaderComponent ? ({ imageIndex }) => <HeaderComponent spotlight={spotlight} imageIndex={imageIndex} /> : undefined}
191
192
  />
192
193
  }
@@ -5,7 +5,8 @@ import _ImageView from 'react-native-image-viewing'
5
5
  import { StatusBar } from 'react-native'
6
6
 
7
7
  export type ImageViewProps = PropsOf<typeof _ImageView>
8
- export const ImageView: React.FC<ImageViewProps> = (props) => {
8
+
9
+ export const ImageView = (props: ImageViewProps) => {
9
10
  onUpdate(() => {
10
11
  StatusBar.setHidden(props.visible)
11
12
  }, [props.visible])