@ovotech/element-native 0.0.0-canary-4df5fd5-21 → 0.0.0-canary-752b435-22

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.
@@ -0,0 +1,6 @@
1
+ import { ReactNode } from 'react';
2
+ export declare const SkeletonAnimation: ({ children, animation, testID, }: {
3
+ children: ReactNode;
4
+ animation?: "none" | "pulse" | undefined;
5
+ testID?: string | undefined;
6
+ }) => JSX.Element;
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.SkeletonAnimation = void 0;
27
+ var react_1 = __importStar(require("react"));
28
+ var react_native_1 = require("react-native");
29
+ var SkeletonAnimation = function (_a) {
30
+ var children = _a.children, _b = _a.animation, animation = _b === void 0 ? 'pulse' : _b, testID = _a.testID;
31
+ var animationRef = (0, react_1.useRef)(new react_native_1.Animated.Value(0));
32
+ var animationLoop = (0, react_1.useRef)();
33
+ (0, react_1.useEffect)(function () {
34
+ animationLoop.current = react_native_1.Animated.timing(animationRef.current, {
35
+ toValue: 2,
36
+ delay: 400,
37
+ duration: 1500,
38
+ useNativeDriver: !!react_native_1.Platform.select({
39
+ web: false,
40
+ native: true,
41
+ }),
42
+ });
43
+ animationRef.current.setValue(0);
44
+ react_native_1.Animated.loop(animationLoop.current).start();
45
+ }, []);
46
+ return (react_1.default.createElement(react_native_1.View, { accessibilityRole: "none", accessibilityLabel: "loading...", accessible: false, testID: testID }, animation === 'pulse' ? (react_1.default.createElement(react_native_1.Animated.View, { style: [
47
+ {
48
+ height: '100%',
49
+ width: '100%',
50
+ opacity: animationRef.current.interpolate({
51
+ inputRange: [0.25, 1, 2],
52
+ outputRange: [1, 0.25, 1],
53
+ }),
54
+ },
55
+ ] }, children)) : (react_1.default.createElement(react_native_1.View, null, children))));
56
+ };
57
+ exports.SkeletonAnimation = SkeletonAnimation;
@@ -30,12 +30,14 @@ var react_1 = __importDefault(require("react"));
30
30
  var styled_native_1 = __importDefault(require("../../styled.native"));
31
31
  var Text_1 = require("../Text");
32
32
  var Skeleton_1 = require("./Skeleton");
33
+ var SkeletonAnimation_1 = require("./SkeletonAnimation");
33
34
  var StyledSkeletonCTA = (0, styled_native_1.default)(Skeleton_1.Skeleton)(function (_a) {
34
35
  var _b = _a.theme, colors = _b.colors, space = _b.space, size = _a.size;
35
36
  return "\n background-color: ".concat(colors.borderMuted, ";\n width: ").concat(size, ";\n height: ").concat(space[12], ";\n ");
36
37
  });
37
38
  var SkeletonCTA = function (_a) {
38
39
  var _b = _a.size, size = _b === void 0 ? '250px' : _b, rest = __rest(_a, ["size"]);
39
- return (react_1.default.createElement(StyledSkeletonCTA, __assign({ as: Text_1.P, size: size }, rest)));
40
+ return (react_1.default.createElement(SkeletonAnimation_1.SkeletonAnimation, null,
41
+ react_1.default.createElement(StyledSkeletonCTA, __assign({ as: Text_1.P, size: size }, rest))));
40
42
  };
41
43
  exports.SkeletonCTA = SkeletonCTA;
@@ -30,6 +30,7 @@ var react_1 = __importDefault(require("react"));
30
30
  var styled_native_1 = __importDefault(require("../../styled.native"));
31
31
  var utils_1 = require("../../utils");
32
32
  var Skeleton_1 = require("./Skeleton");
33
+ var SkeletonAnimation_1 = require("./SkeletonAnimation");
33
34
  var StyledSkeletonCircleWrapper = (0, styled_native_1.default)(Skeleton_1.Skeleton)(function (_a) {
34
35
  var size = _a.size;
35
36
  return "width: ".concat(size, "; max-width: 100%;");
@@ -40,7 +41,8 @@ var StyledSkeletonCircle = (0, styled_native_1.default)(Skeleton_1.Skeleton)(fun
40
41
  });
41
42
  var SkeletonCircle = function (_a) {
42
43
  var _b = _a.size, size = _b === void 0 ? '120px' : _b, rest = __rest(_a, ["size"]);
43
- return (react_1.default.createElement(StyledSkeletonCircleWrapper, __assign({ size: size }, rest),
44
- react_1.default.createElement(StyledSkeletonCircle, { size: size })));
44
+ return (react_1.default.createElement(SkeletonAnimation_1.SkeletonAnimation, null,
45
+ react_1.default.createElement(StyledSkeletonCircleWrapper, __assign({ size: size }, rest),
46
+ react_1.default.createElement(StyledSkeletonCircle, { size: size }))));
45
47
  };
46
48
  exports.SkeletonCircle = SkeletonCircle;
@@ -30,12 +30,14 @@ var react_1 = __importDefault(require("react"));
30
30
  var styled_native_1 = __importDefault(require("../../styled.native"));
31
31
  var Heading_1 = require("../Heading");
32
32
  var Skeleton_1 = require("./Skeleton");
33
+ var SkeletonAnimation_1 = require("./SkeletonAnimation");
33
34
  var StyledSkeletonHeading = (0, styled_native_1.default)(Skeleton_1.Skeleton)(function (_a) {
34
35
  var colors = _a.theme.colors, size = _a.size;
35
36
  return "\n background-color: ".concat(colors.borderMuted, ";\n width: ").concat(size, ";\n ");
36
37
  });
37
38
  var SkeletonHeading = function (_a) {
38
39
  var _b = _a.size, size = _b === void 0 ? '70%' : _b, _c = _a.headingComponent, Heading = _c === void 0 ? Heading_1.Heading3 : _c, rest = __rest(_a, ["size", "headingComponent"]);
39
- return (react_1.default.createElement(StyledSkeletonHeading, __assign({ "aria-hidden": "true", size: size, as: Heading }, rest), "\u00A0"));
40
+ return (react_1.default.createElement(SkeletonAnimation_1.SkeletonAnimation, null,
41
+ react_1.default.createElement(StyledSkeletonHeading, __assign({ "aria-hidden": "true", size: size, as: Heading }, rest), "\u00A0")));
40
42
  };
41
43
  exports.SkeletonHeading = SkeletonHeading;
@@ -27,12 +27,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
27
27
  Object.defineProperty(exports, "__esModule", { value: true });
28
28
  exports.SkeletonText = void 0;
29
29
  var react_1 = __importDefault(require("react"));
30
- var react_native_1 = require("react-native");
31
30
  var hooks_1 = require("../../hooks");
32
31
  var styled_native_1 = __importDefault(require("../../styled.native"));
33
32
  var utils_1 = require("../../utils");
34
33
  var Text_1 = require("../Text");
35
34
  var Skeleton_1 = require("./Skeleton");
35
+ var SkeletonAnimation_1 = require("./SkeletonAnimation");
36
36
  var StyledSkeletonText = (0, styled_native_1.default)(Skeleton_1.Skeleton)(function (_a) {
37
37
  var _b = _a.theme, colors = _b.colors, space = _b.space, responsiveFontSizes = _b.responsiveFontSizes, short = _a.short, breakpoints = _a.breakpoints;
38
38
  return "\n background-color: ".concat(colors.borderMuted, ";\n margin-bottom: ").concat(space[2], ";\n ").concat((0, utils_1.responsiveStyle)('height', responsiveFontSizes.body, breakpoints), "\n\n ").concat(short ? 'width: 50%' : '', ";\n ");
@@ -44,6 +44,6 @@ var SkeletonText = function (_a) {
44
44
  for (var i = 1; i <= lines; i++) {
45
45
  generatedLines.push(react_1.default.createElement(StyledSkeletonText, { key: "line-".concat(i), short: i === lines, breakpoints: breakpoints }));
46
46
  }
47
- return (react_1.default.createElement(Text_1.P, __assign({ as: react_native_1.View }, rest), generatedLines));
47
+ return (react_1.default.createElement(Text_1.P, __assign({ as: SkeletonAnimation_1.SkeletonAnimation }, rest), generatedLines));
48
48
  };
49
49
  exports.SkeletonText = SkeletonText;
@@ -0,0 +1,30 @@
1
+ import React, { useEffect, useRef } from 'react';
2
+ import { View, Animated, Platform } from 'react-native';
3
+ export var SkeletonAnimation = function (_a) {
4
+ var children = _a.children, _b = _a.animation, animation = _b === void 0 ? 'pulse' : _b, testID = _a.testID;
5
+ var animationRef = useRef(new Animated.Value(0));
6
+ var animationLoop = useRef();
7
+ useEffect(function () {
8
+ animationLoop.current = Animated.timing(animationRef.current, {
9
+ toValue: 2,
10
+ delay: 400,
11
+ duration: 1500,
12
+ useNativeDriver: !!Platform.select({
13
+ web: false,
14
+ native: true,
15
+ }),
16
+ });
17
+ animationRef.current.setValue(0);
18
+ Animated.loop(animationLoop.current).start();
19
+ }, []);
20
+ return (React.createElement(View, { accessibilityRole: "none", accessibilityLabel: "loading...", accessible: false, testID: testID }, animation === 'pulse' ? (React.createElement(Animated.View, { style: [
21
+ {
22
+ height: '100%',
23
+ width: '100%',
24
+ opacity: animationRef.current.interpolate({
25
+ inputRange: [0.25, 1, 2],
26
+ outputRange: [1, 0.25, 1],
27
+ }),
28
+ },
29
+ ] }, children)) : (React.createElement(View, null, children))));
30
+ };
@@ -24,11 +24,13 @@ import React from 'react';
24
24
  import styled from '../../styled.native';
25
25
  import { P } from '../Text';
26
26
  import { Skeleton } from './Skeleton';
27
+ import { SkeletonAnimation } from './SkeletonAnimation';
27
28
  var StyledSkeletonCTA = styled(Skeleton)(function (_a) {
28
29
  var _b = _a.theme, colors = _b.colors, space = _b.space, size = _a.size;
29
30
  return "\n background-color: ".concat(colors.borderMuted, ";\n width: ").concat(size, ";\n height: ").concat(space[12], ";\n ");
30
31
  });
31
32
  export var SkeletonCTA = function (_a) {
32
33
  var _b = _a.size, size = _b === void 0 ? '250px' : _b, rest = __rest(_a, ["size"]);
33
- return (React.createElement(StyledSkeletonCTA, __assign({ as: P, size: size }, rest)));
34
+ return (React.createElement(SkeletonAnimation, null,
35
+ React.createElement(StyledSkeletonCTA, __assign({ as: P, size: size }, rest))));
34
36
  };
@@ -24,6 +24,7 @@ import React from 'react';
24
24
  import styled from '../../styled.native';
25
25
  import { pxToNumber } from '../../utils';
26
26
  import { Skeleton } from './Skeleton';
27
+ import { SkeletonAnimation } from './SkeletonAnimation';
27
28
  var StyledSkeletonCircleWrapper = styled(Skeleton)(function (_a) {
28
29
  var size = _a.size;
29
30
  return "width: ".concat(size, "; max-width: 100%;");
@@ -34,6 +35,7 @@ var StyledSkeletonCircle = styled(Skeleton)(function (_a) {
34
35
  });
35
36
  export var SkeletonCircle = function (_a) {
36
37
  var _b = _a.size, size = _b === void 0 ? '120px' : _b, rest = __rest(_a, ["size"]);
37
- return (React.createElement(StyledSkeletonCircleWrapper, __assign({ size: size }, rest),
38
- React.createElement(StyledSkeletonCircle, { size: size })));
38
+ return (React.createElement(SkeletonAnimation, null,
39
+ React.createElement(StyledSkeletonCircleWrapper, __assign({ size: size }, rest),
40
+ React.createElement(StyledSkeletonCircle, { size: size }))));
39
41
  };
@@ -24,11 +24,13 @@ import React from 'react';
24
24
  import styled from '../../styled.native';
25
25
  import { Heading3 } from '../Heading';
26
26
  import { Skeleton } from './Skeleton';
27
+ import { SkeletonAnimation } from './SkeletonAnimation';
27
28
  var StyledSkeletonHeading = styled(Skeleton)(function (_a) {
28
29
  var colors = _a.theme.colors, size = _a.size;
29
30
  return "\n background-color: ".concat(colors.borderMuted, ";\n width: ").concat(size, ";\n ");
30
31
  });
31
32
  export var SkeletonHeading = function (_a) {
32
33
  var _b = _a.size, size = _b === void 0 ? '70%' : _b, _c = _a.headingComponent, Heading = _c === void 0 ? Heading3 : _c, rest = __rest(_a, ["size", "headingComponent"]);
33
- return (React.createElement(StyledSkeletonHeading, __assign({ "aria-hidden": "true", size: size, as: Heading }, rest), "\u00A0"));
34
+ return (React.createElement(SkeletonAnimation, null,
35
+ React.createElement(StyledSkeletonHeading, __assign({ "aria-hidden": "true", size: size, as: Heading }, rest), "\u00A0")));
34
36
  };
@@ -21,12 +21,12 @@ var __rest = (this && this.__rest) || function (s, e) {
21
21
  return t;
22
22
  };
23
23
  import React from 'react';
24
- import { View } from 'react-native';
25
24
  import { useBreakpoint } from '../../hooks';
26
25
  import styled from '../../styled.native';
27
26
  import { responsiveStyle } from '../../utils';
28
27
  import { P } from '../Text';
29
28
  import { Skeleton } from './Skeleton';
29
+ import { SkeletonAnimation } from './SkeletonAnimation';
30
30
  var StyledSkeletonText = styled(Skeleton)(function (_a) {
31
31
  var _b = _a.theme, colors = _b.colors, space = _b.space, responsiveFontSizes = _b.responsiveFontSizes, short = _a.short, breakpoints = _a.breakpoints;
32
32
  return "\n background-color: ".concat(colors.borderMuted, ";\n margin-bottom: ").concat(space[2], ";\n ").concat(responsiveStyle('height', responsiveFontSizes.body, breakpoints), "\n\n ").concat(short ? 'width: 50%' : '', ";\n ");
@@ -38,5 +38,5 @@ export var SkeletonText = function (_a) {
38
38
  for (var i = 1; i <= lines; i++) {
39
39
  generatedLines.push(React.createElement(StyledSkeletonText, { key: "line-".concat(i), short: i === lines, breakpoints: breakpoints }));
40
40
  }
41
- return (React.createElement(P, __assign({ as: View }, rest), generatedLines));
41
+ return (React.createElement(P, __assign({ as: SkeletonAnimation }, rest), generatedLines));
42
42
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ovotech/element-native",
3
- "version": "0.0.0-canary-4df5fd5-21",
3
+ "version": "0.0.0-canary-752b435-22",
4
4
  "main": "dist/index.js",
5
5
  "module": "dist/esm/index.js",
6
6
  "types": "dist/index.d.ts",