@kaspernj/api-maker 1.0.2012 → 1.0.2013

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,22 @@
1
+ import { digg, digs } from "diggerize";
2
+ let isExpo = false;
3
+ try {
4
+ const REQUIRE_TERMINATOR = "";
5
+ const Constants = require(`expo-constants${REQUIRE_TERMINATOR}`);
6
+ const executionEnvironment = digg(Constants, "default", "executionEnvironment");
7
+ const {
8
+ ExecutionEnvironment
9
+ } = digs(Constants, "ExecutionEnvironment");
10
+ const {
11
+ Bare,
12
+ Standalone,
13
+ StoreClient
14
+ } = digs(ExecutionEnvironment, "Bare", "Standalone", "StoreClient");
15
+
16
+ // True if the app is running in an `expo build` app or if it's running in Expo Go.
17
+ isExpo = executionEnvironment === Bare || executionEnvironment === Standalone || executionEnvironment === StoreClient;
18
+ } catch (error) {
19
+ // Do nothing - failed to require expo-constants
20
+ }
21
+ export default isExpo;
22
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkaWdnIiwiZGlncyIsImlzRXhwbyIsIlJFUVVJUkVfVEVSTUlOQVRPUiIsIkNvbnN0YW50cyIsInJlcXVpcmUiLCJleGVjdXRpb25FbnZpcm9ubWVudCIsIkV4ZWN1dGlvbkVudmlyb25tZW50IiwiQmFyZSIsIlN0YW5kYWxvbmUiLCJTdG9yZUNsaWVudCIsImVycm9yIl0sInNvdXJjZXMiOlsiLi4vc3JjL2lzLWV4cG8uanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtkaWdnLCBkaWdzfSBmcm9tIFwiZGlnZ2VyaXplXCJcblxubGV0IGlzRXhwbyA9IGZhbHNlXG5cbnRyeSB7XG4gIGNvbnN0IFJFUVVJUkVfVEVSTUlOQVRPUiA9IFwiXCJcbiAgY29uc3QgQ29uc3RhbnRzID0gcmVxdWlyZShgZXhwby1jb25zdGFudHMke1JFUVVJUkVfVEVSTUlOQVRPUn1gKVxuICBjb25zdCBleGVjdXRpb25FbnZpcm9ubWVudCA9IGRpZ2coQ29uc3RhbnRzLCBcImRlZmF1bHRcIiwgXCJleGVjdXRpb25FbnZpcm9ubWVudFwiKVxuICBjb25zdCB7RXhlY3V0aW9uRW52aXJvbm1lbnR9ID0gZGlncyhDb25zdGFudHMsIFwiRXhlY3V0aW9uRW52aXJvbm1lbnRcIilcbiAgY29uc3Qge0JhcmUsIFN0YW5kYWxvbmUsIFN0b3JlQ2xpZW50fSA9IGRpZ3MoRXhlY3V0aW9uRW52aXJvbm1lbnQsIFwiQmFyZVwiLCBcIlN0YW5kYWxvbmVcIiwgXCJTdG9yZUNsaWVudFwiKVxuXG4gIC8vIFRydWUgaWYgdGhlIGFwcCBpcyBydW5uaW5nIGluIGFuIGBleHBvIGJ1aWxkYCBhcHAgb3IgaWYgaXQncyBydW5uaW5nIGluIEV4cG8gR28uXG4gIGlzRXhwbyA9IGV4ZWN1dGlvbkVudmlyb25tZW50ID09PSBCYXJlIHx8IGV4ZWN1dGlvbkVudmlyb25tZW50ID09PSBTdGFuZGFsb25lIHx8IGV4ZWN1dGlvbkVudmlyb25tZW50ID09PSBTdG9yZUNsaWVudFxufSBjYXRjaCAoZXJyb3IpIHtcbiAgLy8gRG8gbm90aGluZyAtIGZhaWxlZCB0byByZXF1aXJlIGV4cG8tY29uc3RhbnRzXG59XG5cbmV4cG9ydCBkZWZhdWx0IGlzRXhwb1xuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFRQSxJQUFJLEVBQUVDLElBQUksUUFBTyxXQUFXO0FBRXBDLElBQUlDLE1BQU0sR0FBRyxLQUFLO0FBRWxCLElBQUk7RUFDRixNQUFNQyxrQkFBa0IsR0FBRyxFQUFFO0VBQzdCLE1BQU1DLFNBQVMsR0FBR0MsT0FBTyxDQUFDLGlCQUFpQkYsa0JBQWtCLEVBQUUsQ0FBQztFQUNoRSxNQUFNRyxvQkFBb0IsR0FBR04sSUFBSSxDQUFDSSxTQUFTLEVBQUUsU0FBUyxFQUFFLHNCQUFzQixDQUFDO0VBQy9FLE1BQU07SUFBQ0c7RUFBb0IsQ0FBQyxHQUFHTixJQUFJLENBQUNHLFNBQVMsRUFBRSxzQkFBc0IsQ0FBQztFQUN0RSxNQUFNO0lBQUNJLElBQUk7SUFBRUMsVUFBVTtJQUFFQztFQUFXLENBQUMsR0FBR1QsSUFBSSxDQUFDTSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLGFBQWEsQ0FBQzs7RUFFdkc7RUFDQUwsTUFBTSxHQUFHSSxvQkFBb0IsS0FBS0UsSUFBSSxJQUFJRixvQkFBb0IsS0FBS0csVUFBVSxJQUFJSCxvQkFBb0IsS0FBS0ksV0FBVztBQUN2SCxDQUFDLENBQUMsT0FBT0MsS0FBSyxFQUFFO0VBQ2Q7QUFBQTtBQUdGLGVBQWVULE1BQU0iLCJpZ25vcmVMaXN0IjpbXX0=
@@ -1,18 +1,27 @@
1
1
  import { useCallback, useLayoutEffect } from "react";
2
- import apiMakerConfig from "@kaspernj/api-maker/build/config";
2
+ import config from "./config";
3
3
  import { Dimensions } from "react-native";
4
4
  import * as inflection from "inflection";
5
+ import isExpo from "./is-expo";
5
6
  import useShape from "set-state-compare/src/use-shape";
6
- const calculateBreakPoint = window => {
7
- const windowWidth = window.width;
7
+ const calculateBreakPoint = windowObject => {
8
+ let windowWidth;
9
+ if (isExpo) {
10
+ windowWidth = windowObject.width;
11
+ } else {
12
+ // Use 'window.innerWidth' outside Expo because sometimes window width excludes scroll
13
+ windowWidth = window.innerWidth;
14
+ }
8
15
  const result = {};
9
- for (const breakpointData of apiMakerConfig.getBreakPoints()) {
16
+ for (const breakpointData of config.getBreakPoints()) {
10
17
  const breakpoint = breakpointData[0];
11
18
  const width = breakpointData[1];
12
19
  if (!result.name && windowWidth >= width) {
13
20
  result.name = breakpoint;
21
+ result[`${breakpoint}Down`] = true;
22
+ } else {
23
+ result[`${breakpoint}Down`] = !result.name;
14
24
  }
15
- result[`${breakpoint}Down`] = !result.name;
16
25
  result[`${breakpoint}Up`] = Boolean(result.name);
17
26
  }
18
27
  if (result.name) {
@@ -24,9 +33,9 @@ const sizeTypes = ["down", "up"];
24
33
  const useBreakpoint = () => {
25
34
  const s = useShape();
26
35
  const onCalled = useCallback(({
27
- window
36
+ window: windowObject
28
37
  }) => {
29
- const breakpoint = calculateBreakPoint(window);
38
+ const breakpoint = calculateBreakPoint(windowObject);
30
39
  if (breakpoint.name != s.s.breakpoint.name) {
31
40
  s.set({
32
41
  breakpoint
@@ -59,4 +68,4 @@ const useBreakpoint = () => {
59
68
  };
60
69
  };
61
70
  export default useBreakpoint;
62
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZUxheW91dEVmZmVjdCIsImFwaU1ha2VyQ29uZmlnIiwiRGltZW5zaW9ucyIsImluZmxlY3Rpb24iLCJ1c2VTaGFwZSIsImNhbGN1bGF0ZUJyZWFrUG9pbnQiLCJ3aW5kb3ciLCJ3aW5kb3dXaWR0aCIsIndpZHRoIiwicmVzdWx0IiwiYnJlYWtwb2ludERhdGEiLCJnZXRCcmVha1BvaW50cyIsImJyZWFrcG9pbnQiLCJuYW1lIiwiQm9vbGVhbiIsIkVycm9yIiwic2l6ZVR5cGVzIiwidXNlQnJlYWtwb2ludCIsInMiLCJvbkNhbGxlZCIsInNldCIsInVzZVN0YXRlcyIsImdldCIsInN0eWxpbmciLCJhcmdzIiwic3R5bGUiLCJPYmplY3QiLCJhc3NpZ24iLCJiYXNlIiwic2l6ZVR5cGUiLCJicmVha3BvaW50V2l0aFNpemVUeXBlIiwiY2FtZWxpemUiLCJzdWJzY3JpcHRpb24iLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlIl0sInNvdXJjZXMiOlsiLi4vc3JjL3VzZS1icmVha3BvaW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7dXNlQ2FsbGJhY2ssIHVzZUxheW91dEVmZmVjdH0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCBhcGlNYWtlckNvbmZpZyBmcm9tIFwiQGthc3Blcm5qL2FwaS1tYWtlci9idWlsZC9jb25maWdcIlxuaW1wb3J0IHtEaW1lbnNpb25zfSBmcm9tIFwicmVhY3QtbmF0aXZlXCJcbmltcG9ydCAqIGFzIGluZmxlY3Rpb24gZnJvbSBcImluZmxlY3Rpb25cIlxuaW1wb3J0IHVzZVNoYXBlIGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9zcmMvdXNlLXNoYXBlXCJcblxuY29uc3QgY2FsY3VsYXRlQnJlYWtQb2ludCA9ICh3aW5kb3cpID0+IHtcbiAgY29uc3Qgd2luZG93V2lkdGggPSB3aW5kb3cud2lkdGhcbiAgY29uc3QgcmVzdWx0ID0ge31cblxuICBmb3IgKGNvbnN0IGJyZWFrcG9pbnREYXRhIG9mIGFwaU1ha2VyQ29uZmlnLmdldEJyZWFrUG9pbnRzKCkpIHtcbiAgICBjb25zdCBicmVha3BvaW50ID0gYnJlYWtwb2ludERhdGFbMF1cbiAgICBjb25zdCB3aWR0aCA9IGJyZWFrcG9pbnREYXRhWzFdXG5cbiAgICBpZiAoIXJlc3VsdC5uYW1lICYmIHdpbmRvd1dpZHRoID49IHdpZHRoKSB7XG4gICAgICByZXN1bHQubmFtZSA9IGJyZWFrcG9pbnRcbiAgICB9XG5cbiAgICByZXN1bHRbYCR7YnJlYWtwb2ludH1Eb3duYF0gPSAhcmVzdWx0Lm5hbWVcbiAgICByZXN1bHRbYCR7YnJlYWtwb2ludH1VcGBdID0gQm9vbGVhbihyZXN1bHQubmFtZSlcbiAgfVxuXG4gIGlmIChyZXN1bHQubmFtZSkge1xuICAgIHJldHVybiByZXN1bHRcbiAgfVxuXG4gIHRocm93IG5ldyBFcnJvcihgQ291bGRuJ3Qgbm90IGZpbmQgYnJlYWtwb2ludCBmcm9tIHdpbmRvdyB3aWR0aDogJHt3aW5kb3dXaWR0aH1gKVxufVxuXG5jb25zdCBzaXplVHlwZXMgPSBbXCJkb3duXCIsIFwidXBcIl1cblxuY29uc3QgdXNlQnJlYWtwb2ludCA9ICgpID0+IHtcbiAgY29uc3QgcyA9IHVzZVNoYXBlKClcbiAgY29uc3Qgb25DYWxsZWQgPSB1c2VDYWxsYmFjaygoe3dpbmRvd30pID0+IHtcbiAgICBjb25zdCBicmVha3BvaW50ID0gY2FsY3VsYXRlQnJlYWtQb2ludCh3aW5kb3cpXG5cbiAgICBpZiAoYnJlYWtwb2ludC5uYW1lICE9IHMucy5icmVha3BvaW50Lm5hbWUpIHtcbiAgICAgIHMuc2V0KHticmVha3BvaW50fSlcbiAgICB9XG4gIH0sIFtdKVxuXG4gIHMudXNlU3RhdGVzKHtcbiAgICBicmVha3BvaW50OiAoKSA9PiBjYWxjdWxhdGVCcmVha1BvaW50KERpbWVuc2lvbnMuZ2V0KFwid2luZG93XCIpKVxuICB9KVxuXG4gIGNvbnN0IHN0eWxpbmcgPSB1c2VDYWxsYmFjaygoYXJncykgPT4ge1xuICAgIGNvbnN0IHN0eWxlID0gT2JqZWN0LmFzc2lnbih7fSwgYXJncy5iYXNlKVxuXG4gICAgZm9yIChjb25zdCBicmVha3BvaW50RGF0YSBvZiBhcGlNYWtlckNvbmZpZy5nZXRCcmVha1BvaW50cygpKSB7XG4gICAgICBjb25zdCBicmVha3BvaW50ID0gYnJlYWtwb2ludERhdGFbMF1cblxuICAgICAgZm9yIChjb25zdCBzaXplVHlwZSBvZiBzaXplVHlwZXMpIHtcbiAgICAgICAgY29uc3QgYnJlYWtwb2ludFdpdGhTaXplVHlwZSA9IGAke2JyZWFrcG9pbnR9JHtpbmZsZWN0aW9uLmNhbWVsaXplKHNpemVUeXBlKX1gXG5cbiAgICAgICAgaWYgKGFyZ3NbYnJlYWtwb2ludFdpdGhTaXplVHlwZV0gJiYgcy5zLmJyZWFrcG9pbnRbYnJlYWtwb2ludFdpdGhTaXplVHlwZV0pIHtcbiAgICAgICAgICBPYmplY3QuYXNzaWduKHN0eWxlLCBhcmdzW2JyZWFrcG9pbnRXaXRoU2l6ZVR5cGVdKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0eWxlXG4gIH0sIFtdKVxuXG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gRGltZW5zaW9ucy5hZGRFdmVudExpc3RlbmVyKFwiY2hhbmdlXCIsIG9uQ2FsbGVkKVxuXG4gICAgcmV0dXJuICgpID0+IHN1YnNjcmlwdGlvbj8ucmVtb3ZlKClcbiAgfSlcblxuICByZXR1cm4ge1xuICAgIHN0eWxpbmcsXG4gICAgLi4ucy5zLmJyZWFrcG9pbnRcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCB1c2VCcmVha3BvaW50XG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVFBLFdBQVcsRUFBRUMsZUFBZSxRQUFPLE9BQU87QUFDbEQsT0FBT0MsY0FBYyxNQUFNLGtDQUFrQztBQUM3RCxTQUFRQyxVQUFVLFFBQU8sY0FBYztBQUN2QyxPQUFPLEtBQUtDLFVBQVUsTUFBTSxZQUFZO0FBQ3hDLE9BQU9DLFFBQVEsTUFBTSxpQ0FBaUM7QUFFdEQsTUFBTUMsbUJBQW1CLEdBQUlDLE1BQU0sSUFBSztFQUN0QyxNQUFNQyxXQUFXLEdBQUdELE1BQU0sQ0FBQ0UsS0FBSztFQUNoQyxNQUFNQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0VBRWpCLEtBQUssTUFBTUMsY0FBYyxJQUFJVCxjQUFjLENBQUNVLGNBQWMsQ0FBQyxDQUFDLEVBQUU7SUFDNUQsTUFBTUMsVUFBVSxHQUFHRixjQUFjLENBQUMsQ0FBQyxDQUFDO0lBQ3BDLE1BQU1GLEtBQUssR0FBR0UsY0FBYyxDQUFDLENBQUMsQ0FBQztJQUUvQixJQUFJLENBQUNELE1BQU0sQ0FBQ0ksSUFBSSxJQUFJTixXQUFXLElBQUlDLEtBQUssRUFBRTtNQUN4Q0MsTUFBTSxDQUFDSSxJQUFJLEdBQUdELFVBQVU7SUFDMUI7SUFFQUgsTUFBTSxDQUFDLEdBQUdHLFVBQVUsTUFBTSxDQUFDLEdBQUcsQ0FBQ0gsTUFBTSxDQUFDSSxJQUFJO0lBQzFDSixNQUFNLENBQUMsR0FBR0csVUFBVSxJQUFJLENBQUMsR0FBR0UsT0FBTyxDQUFDTCxNQUFNLENBQUNJLElBQUksQ0FBQztFQUNsRDtFQUVBLElBQUlKLE1BQU0sQ0FBQ0ksSUFBSSxFQUFFO0lBQ2YsT0FBT0osTUFBTTtFQUNmO0VBRUEsTUFBTSxJQUFJTSxLQUFLLENBQUMsbURBQW1EUixXQUFXLEVBQUUsQ0FBQztBQUNuRixDQUFDO0FBRUQsTUFBTVMsU0FBUyxHQUFHLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQztBQUVoQyxNQUFNQyxhQUFhLEdBQUdBLENBQUEsS0FBTTtFQUMxQixNQUFNQyxDQUFDLEdBQUdkLFFBQVEsQ0FBQyxDQUFDO0VBQ3BCLE1BQU1lLFFBQVEsR0FBR3BCLFdBQVcsQ0FBQyxDQUFDO0lBQUNPO0VBQU0sQ0FBQyxLQUFLO0lBQ3pDLE1BQU1NLFVBQVUsR0FBR1AsbUJBQW1CLENBQUNDLE1BQU0sQ0FBQztJQUU5QyxJQUFJTSxVQUFVLENBQUNDLElBQUksSUFBSUssQ0FBQyxDQUFDQSxDQUFDLENBQUNOLFVBQVUsQ0FBQ0MsSUFBSSxFQUFFO01BQzFDSyxDQUFDLENBQUNFLEdBQUcsQ0FBQztRQUFDUjtNQUFVLENBQUMsQ0FBQztJQUNyQjtFQUNGLENBQUMsRUFBRSxFQUFFLENBQUM7RUFFTk0sQ0FBQyxDQUFDRyxTQUFTLENBQUM7SUFDVlQsVUFBVSxFQUFFQSxDQUFBLEtBQU1QLG1CQUFtQixDQUFDSCxVQUFVLENBQUNvQixHQUFHLENBQUMsUUFBUSxDQUFDO0VBQ2hFLENBQUMsQ0FBQztFQUVGLE1BQU1DLE9BQU8sR0FBR3hCLFdBQVcsQ0FBRXlCLElBQUksSUFBSztJQUNwQyxNQUFNQyxLQUFLLEdBQUdDLE1BQU0sQ0FBQ0MsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFSCxJQUFJLENBQUNJLElBQUksQ0FBQztJQUUxQyxLQUFLLE1BQU1sQixjQUFjLElBQUlULGNBQWMsQ0FBQ1UsY0FBYyxDQUFDLENBQUMsRUFBRTtNQUM1RCxNQUFNQyxVQUFVLEdBQUdGLGNBQWMsQ0FBQyxDQUFDLENBQUM7TUFFcEMsS0FBSyxNQUFNbUIsUUFBUSxJQUFJYixTQUFTLEVBQUU7UUFDaEMsTUFBTWMsc0JBQXNCLEdBQUcsR0FBR2xCLFVBQVUsR0FBR1QsVUFBVSxDQUFDNEIsUUFBUSxDQUFDRixRQUFRLENBQUMsRUFBRTtRQUU5RSxJQUFJTCxJQUFJLENBQUNNLHNCQUFzQixDQUFDLElBQUlaLENBQUMsQ0FBQ0EsQ0FBQyxDQUFDTixVQUFVLENBQUNrQixzQkFBc0IsQ0FBQyxFQUFFO1VBQzFFSixNQUFNLENBQUNDLE1BQU0sQ0FBQ0YsS0FBSyxFQUFFRCxJQUFJLENBQUNNLHNCQUFzQixDQUFDLENBQUM7UUFDcEQ7TUFDRjtJQUNGO0lBRUEsT0FBT0wsS0FBSztFQUNkLENBQUMsRUFBRSxFQUFFLENBQUM7RUFFTnpCLGVBQWUsQ0FBQyxNQUFNO0lBQ3BCLE1BQU1nQyxZQUFZLEdBQUc5QixVQUFVLENBQUMrQixnQkFBZ0IsQ0FBQyxRQUFRLEVBQUVkLFFBQVEsQ0FBQztJQUVwRSxPQUFPLE1BQU1hLFlBQVksRUFBRUUsTUFBTSxDQUFDLENBQUM7RUFDckMsQ0FBQyxDQUFDO0VBRUYsT0FBTztJQUNMWCxPQUFPO0lBQ1AsR0FBR0wsQ0FBQyxDQUFDQSxDQUFDLENBQUNOO0VBQ1QsQ0FBQztBQUNILENBQUM7QUFFRCxlQUFlSyxhQUFhIiwiaWdub3JlTGlzdCI6W119
71
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZUxheW91dEVmZmVjdCIsImNvbmZpZyIsIkRpbWVuc2lvbnMiLCJpbmZsZWN0aW9uIiwiaXNFeHBvIiwidXNlU2hhcGUiLCJjYWxjdWxhdGVCcmVha1BvaW50Iiwid2luZG93T2JqZWN0Iiwid2luZG93V2lkdGgiLCJ3aWR0aCIsIndpbmRvdyIsImlubmVyV2lkdGgiLCJyZXN1bHQiLCJicmVha3BvaW50RGF0YSIsImdldEJyZWFrUG9pbnRzIiwiYnJlYWtwb2ludCIsIm5hbWUiLCJCb29sZWFuIiwiRXJyb3IiLCJzaXplVHlwZXMiLCJ1c2VCcmVha3BvaW50IiwicyIsIm9uQ2FsbGVkIiwic2V0IiwidXNlU3RhdGVzIiwiZ2V0Iiwic3R5bGluZyIsImFyZ3MiLCJzdHlsZSIsIk9iamVjdCIsImFzc2lnbiIsImJhc2UiLCJhcGlNYWtlckNvbmZpZyIsInNpemVUeXBlIiwiYnJlYWtwb2ludFdpdGhTaXplVHlwZSIsImNhbWVsaXplIiwic3Vic2NyaXB0aW9uIiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZSJdLCJzb3VyY2VzIjpbIi4uL3NyYy91c2UtYnJlYWtwb2ludC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3VzZUNhbGxiYWNrLCB1c2VMYXlvdXRFZmZlY3R9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgY29uZmlnIGZyb20gXCIuL2NvbmZpZ1wiXG5pbXBvcnQge0RpbWVuc2lvbnN9IGZyb20gXCJyZWFjdC1uYXRpdmVcIlxuaW1wb3J0ICogYXMgaW5mbGVjdGlvbiBmcm9tIFwiaW5mbGVjdGlvblwiXG5pbXBvcnQgaXNFeHBvIGZyb20gXCIuL2lzLWV4cG9cIlxuaW1wb3J0IHVzZVNoYXBlIGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9zcmMvdXNlLXNoYXBlXCJcblxuY29uc3QgY2FsY3VsYXRlQnJlYWtQb2ludCA9ICh3aW5kb3dPYmplY3QpID0+IHtcbiAgbGV0IHdpbmRvd1dpZHRoXG5cbiAgaWYgKGlzRXhwbykge1xuICAgIHdpbmRvd1dpZHRoID0gd2luZG93T2JqZWN0LndpZHRoXG4gIH0gZWxzZSB7XG4gICAgLy8gVXNlICd3aW5kb3cuaW5uZXJXaWR0aCcgb3V0c2lkZSBFeHBvIGJlY2F1c2Ugc29tZXRpbWVzIHdpbmRvdyB3aWR0aCBleGNsdWRlcyBzY3JvbGxcbiAgICB3aW5kb3dXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoXG4gIH1cblxuICBjb25zdCByZXN1bHQgPSB7fVxuXG4gIGZvciAoY29uc3QgYnJlYWtwb2ludERhdGEgb2YgY29uZmlnLmdldEJyZWFrUG9pbnRzKCkpIHtcbiAgICBjb25zdCBicmVha3BvaW50ID0gYnJlYWtwb2ludERhdGFbMF1cbiAgICBjb25zdCB3aWR0aCA9IGJyZWFrcG9pbnREYXRhWzFdXG5cbiAgICBpZiAoIXJlc3VsdC5uYW1lICYmIHdpbmRvd1dpZHRoID49IHdpZHRoKSB7XG4gICAgICByZXN1bHQubmFtZSA9IGJyZWFrcG9pbnRcbiAgICAgIHJlc3VsdFtgJHticmVha3BvaW50fURvd25gXSA9IHRydWVcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzdWx0W2Ake2JyZWFrcG9pbnR9RG93bmBdID0gIXJlc3VsdC5uYW1lXG4gICAgfVxuXG4gICAgcmVzdWx0W2Ake2JyZWFrcG9pbnR9VXBgXSA9IEJvb2xlYW4ocmVzdWx0Lm5hbWUpXG4gIH1cblxuICBpZiAocmVzdWx0Lm5hbWUpIHtcbiAgICByZXR1cm4gcmVzdWx0XG4gIH1cblxuICB0aHJvdyBuZXcgRXJyb3IoYENvdWxkbid0IG5vdCBmaW5kIGJyZWFrcG9pbnQgZnJvbSB3aW5kb3cgd2lkdGg6ICR7d2luZG93V2lkdGh9YClcbn1cblxuY29uc3Qgc2l6ZVR5cGVzID0gW1wiZG93blwiLCBcInVwXCJdXG5cbmNvbnN0IHVzZUJyZWFrcG9pbnQgPSAoKSA9PiB7XG4gIGNvbnN0IHMgPSB1c2VTaGFwZSgpXG4gIGNvbnN0IG9uQ2FsbGVkID0gdXNlQ2FsbGJhY2soKHt3aW5kb3c6IHdpbmRvd09iamVjdH0pID0+IHtcbiAgICBjb25zdCBicmVha3BvaW50ID0gY2FsY3VsYXRlQnJlYWtQb2ludCh3aW5kb3dPYmplY3QpXG5cbiAgICBpZiAoYnJlYWtwb2ludC5uYW1lICE9IHMucy5icmVha3BvaW50Lm5hbWUpIHtcbiAgICAgIHMuc2V0KHticmVha3BvaW50fSlcbiAgICB9XG4gIH0sIFtdKVxuXG4gIHMudXNlU3RhdGVzKHtcbiAgICBicmVha3BvaW50OiAoKSA9PiBjYWxjdWxhdGVCcmVha1BvaW50KERpbWVuc2lvbnMuZ2V0KFwid2luZG93XCIpKVxuICB9KVxuXG4gIGNvbnN0IHN0eWxpbmcgPSB1c2VDYWxsYmFjaygoYXJncykgPT4ge1xuICAgIGNvbnN0IHN0eWxlID0gT2JqZWN0LmFzc2lnbih7fSwgYXJncy5iYXNlKVxuXG4gICAgZm9yIChjb25zdCBicmVha3BvaW50RGF0YSBvZiBhcGlNYWtlckNvbmZpZy5nZXRCcmVha1BvaW50cygpKSB7XG4gICAgICBjb25zdCBicmVha3BvaW50ID0gYnJlYWtwb2ludERhdGFbMF1cblxuICAgICAgZm9yIChjb25zdCBzaXplVHlwZSBvZiBzaXplVHlwZXMpIHtcbiAgICAgICAgY29uc3QgYnJlYWtwb2ludFdpdGhTaXplVHlwZSA9IGAke2JyZWFrcG9pbnR9JHtpbmZsZWN0aW9uLmNhbWVsaXplKHNpemVUeXBlKX1gXG5cbiAgICAgICAgaWYgKGFyZ3NbYnJlYWtwb2ludFdpdGhTaXplVHlwZV0gJiYgcy5zLmJyZWFrcG9pbnRbYnJlYWtwb2ludFdpdGhTaXplVHlwZV0pIHtcbiAgICAgICAgICBPYmplY3QuYXNzaWduKHN0eWxlLCBhcmdzW2JyZWFrcG9pbnRXaXRoU2l6ZVR5cGVdKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0eWxlXG4gIH0sIFtdKVxuXG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gRGltZW5zaW9ucy5hZGRFdmVudExpc3RlbmVyKFwiY2hhbmdlXCIsIG9uQ2FsbGVkKVxuXG4gICAgcmV0dXJuICgpID0+IHN1YnNjcmlwdGlvbj8ucmVtb3ZlKClcbiAgfSlcblxuICByZXR1cm4ge1xuICAgIHN0eWxpbmcsXG4gICAgLi4ucy5zLmJyZWFrcG9pbnRcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCB1c2VCcmVha3BvaW50XG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVFBLFdBQVcsRUFBRUMsZUFBZSxRQUFPLE9BQU87QUFDbEQsT0FBT0MsTUFBTSxNQUFNLFVBQVU7QUFDN0IsU0FBUUMsVUFBVSxRQUFPLGNBQWM7QUFDdkMsT0FBTyxLQUFLQyxVQUFVLE1BQU0sWUFBWTtBQUN4QyxPQUFPQyxNQUFNLE1BQU0sV0FBVztBQUM5QixPQUFPQyxRQUFRLE1BQU0saUNBQWlDO0FBRXRELE1BQU1DLG1CQUFtQixHQUFJQyxZQUFZLElBQUs7RUFDNUMsSUFBSUMsV0FBVztFQUVmLElBQUlKLE1BQU0sRUFBRTtJQUNWSSxXQUFXLEdBQUdELFlBQVksQ0FBQ0UsS0FBSztFQUNsQyxDQUFDLE1BQU07SUFDTDtJQUNBRCxXQUFXLEdBQUdFLE1BQU0sQ0FBQ0MsVUFBVTtFQUNqQztFQUVBLE1BQU1DLE1BQU0sR0FBRyxDQUFDLENBQUM7RUFFakIsS0FBSyxNQUFNQyxjQUFjLElBQUlaLE1BQU0sQ0FBQ2EsY0FBYyxDQUFDLENBQUMsRUFBRTtJQUNwRCxNQUFNQyxVQUFVLEdBQUdGLGNBQWMsQ0FBQyxDQUFDLENBQUM7SUFDcEMsTUFBTUosS0FBSyxHQUFHSSxjQUFjLENBQUMsQ0FBQyxDQUFDO0lBRS9CLElBQUksQ0FBQ0QsTUFBTSxDQUFDSSxJQUFJLElBQUlSLFdBQVcsSUFBSUMsS0FBSyxFQUFFO01BQ3hDRyxNQUFNLENBQUNJLElBQUksR0FBR0QsVUFBVTtNQUN4QkgsTUFBTSxDQUFDLEdBQUdHLFVBQVUsTUFBTSxDQUFDLEdBQUcsSUFBSTtJQUNwQyxDQUFDLE1BQU07TUFDTEgsTUFBTSxDQUFDLEdBQUdHLFVBQVUsTUFBTSxDQUFDLEdBQUcsQ0FBQ0gsTUFB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
@@ -0,0 +1,41 @@
1
+ import config from "./config";
2
+ import { digg } from "diggerize";
3
+ import * as inflection from "inflection";
4
+ import useBreakpoint from "./use-breakpoint";
5
+ import { useMemo } from "react";
6
+ const useStyles = (styles, args, dependencies = []) => {
7
+ const breakpoint = useBreakpoint();
8
+ const breakpointName = digg(breakpoint, "name");
9
+ const actualDependencies = [...dependencies, breakpointName];
10
+ const listOfStyles = useMemo(() => {
11
+ const listOfStyles = [];
12
+ const breakpointsReverse = [...config.getBreakPoints()].reverse();
13
+ for (const arg of args) {
14
+ if (typeof arg == "string") {
15
+ if (!(arg in styles)) {
16
+ throw new Error(`No such styling '${arg}' in given styles: ${Object.keys(styles).join(", ")}`);
17
+ }
18
+ listOfStyles.push(styles[arg]);
19
+ for (const breakpointData of breakpointsReverse) {
20
+ const breakpointName = breakpointData[0];
21
+ const breakpointStyleNameUp = `${arg}${inflection.camelize(breakpointName)}Up`;
22
+ const breakpointStyleNameDown = `${arg}${inflection.camelize(breakpointName)}Down`;
23
+ const breakpointIsUp = digg(breakpoint, `${breakpointName}Up`);
24
+ const breakpointIsDown = digg(breakpoint, `${breakpointName}Down`);
25
+ if (breakpointStyleNameUp in styles && breakpointIsUp) {
26
+ listOfStyles.push(styles[breakpointStyleNameUp]);
27
+ }
28
+ if (breakpointStyleNameDown in styles && breakpointIsDown) {
29
+ listOfStyles.push(styles[breakpointStyleNameDown]);
30
+ }
31
+ }
32
+ } else {
33
+ throw new Error(`Unhandled type: ${typeof arg}`);
34
+ }
35
+ }
36
+ return listOfStyles;
37
+ }, actualDependencies);
38
+ return listOfStyles;
39
+ };
40
+ export default useStyles;
41
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb25maWciLCJkaWdnIiwiaW5mbGVjdGlvbiIsInVzZUJyZWFrcG9pbnQiLCJ1c2VNZW1vIiwidXNlU3R5bGVzIiwic3R5bGVzIiwiYXJncyIsImRlcGVuZGVuY2llcyIsImJyZWFrcG9pbnQiLCJicmVha3BvaW50TmFtZSIsImFjdHVhbERlcGVuZGVuY2llcyIsImxpc3RPZlN0eWxlcyIsImJyZWFrcG9pbnRzUmV2ZXJzZSIsImdldEJyZWFrUG9pbnRzIiwicmV2ZXJzZSIsImFyZyIsIkVycm9yIiwiT2JqZWN0Iiwia2V5cyIsImpvaW4iLCJwdXNoIiwiYnJlYWtwb2ludERhdGEiLCJicmVha3BvaW50U3R5bGVOYW1lVXAiLCJjYW1lbGl6ZSIsImJyZWFrcG9pbnRTdHlsZU5hbWVEb3duIiwiYnJlYWtwb2ludElzVXAiLCJicmVha3BvaW50SXNEb3duIl0sInNvdXJjZXMiOlsiLi4vc3JjL3VzZS1zdHlsZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNvbmZpZyBmcm9tIFwiLi9jb25maWdcIlxuaW1wb3J0IHtkaWdnfSBmcm9tIFwiZGlnZ2VyaXplXCJcbmltcG9ydCAqIGFzIGluZmxlY3Rpb24gZnJvbSBcImluZmxlY3Rpb25cIlxuaW1wb3J0IHVzZUJyZWFrcG9pbnQgZnJvbSBcIi4vdXNlLWJyZWFrcG9pbnRcIlxuaW1wb3J0IHt1c2VNZW1vfSBmcm9tIFwicmVhY3RcIlxuXG5jb25zdCB1c2VTdHlsZXMgPSAoc3R5bGVzLCBhcmdzLCBkZXBlbmRlbmNpZXMgPSBbXSkgPT4ge1xuICBjb25zdCBicmVha3BvaW50ID0gdXNlQnJlYWtwb2ludCgpXG4gIGNvbnN0IGJyZWFrcG9pbnROYW1lID0gZGlnZyhicmVha3BvaW50LCBcIm5hbWVcIilcbiAgY29uc3QgYWN0dWFsRGVwZW5kZW5jaWVzID0gWy4uLmRlcGVuZGVuY2llcywgYnJlYWtwb2ludE5hbWVdXG5cbiAgY29uc3QgbGlzdE9mU3R5bGVzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgbGlzdE9mU3R5bGVzID0gW11cbiAgICBjb25zdCBicmVha3BvaW50c1JldmVyc2UgPSBbLi4uY29uZmlnLmdldEJyZWFrUG9pbnRzKCldLnJldmVyc2UoKVxuXG4gICAgZm9yIChjb25zdCBhcmcgb2YgYXJncykge1xuICAgICAgaWYgKHR5cGVvZiBhcmcgPT0gXCJzdHJpbmdcIikge1xuICAgICAgICBpZiAoIShhcmcgaW4gc3R5bGVzKSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gc3VjaCBzdHlsaW5nICcke2FyZ30nIGluIGdpdmVuIHN0eWxlczogJHtPYmplY3Qua2V5cyhzdHlsZXMpLmpvaW4oXCIsIFwiKX1gKVxuICAgICAgICB9XG5cbiAgICAgICAgbGlzdE9mU3R5bGVzLnB1c2goc3R5bGVzW2FyZ10pXG5cbiAgICAgICAgZm9yIChjb25zdCBicmVha3BvaW50RGF0YSBvZiBicmVha3BvaW50c1JldmVyc2UpIHtcbiAgICAgICAgICBjb25zdCBicmVha3BvaW50TmFtZSA9IGJyZWFrcG9pbnREYXRhWzBdXG4gICAgICAgICAgY29uc3QgYnJlYWtwb2ludFN0eWxlTmFtZVVwID0gYCR7YXJnfSR7aW5mbGVjdGlvbi5jYW1lbGl6ZShicmVha3BvaW50TmFtZSl9VXBgXG4gICAgICAgICAgY29uc3QgYnJlYWtwb2ludFN0eWxlTmFtZURvd24gPSBgJHthcmd9JHtpbmZsZWN0aW9uLmNhbWVsaXplKGJyZWFrcG9pbnROYW1lKX1Eb3duYFxuICAgICAgICAgIGNvbnN0IGJyZWFrcG9pbnRJc1VwID0gZGlnZyhicmVha3BvaW50LCBgJHticmVha3BvaW50TmFtZX1VcGApXG4gICAgICAgICAgY29uc3QgYnJlYWtwb2ludElzRG93biA9IGRpZ2coYnJlYWtwb2ludCwgYCR7YnJlYWtwb2ludE5hbWV9RG93bmApXG5cbiAgICAgICAgICBpZiAoYnJlYWtwb2ludFN0eWxlTmFtZVVwIGluIHN0eWxlcyAmJiBicmVha3BvaW50SXNVcCkge1xuICAgICAgICAgICAgbGlzdE9mU3R5bGVzLnB1c2goc3R5bGVzW2JyZWFrcG9pbnRTdHlsZU5hbWVVcF0pXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGJyZWFrcG9pbnRTdHlsZU5hbWVEb3duIGluIHN0eWxlcyAmJiBicmVha3BvaW50SXNEb3duKSB7XG4gICAgICAgICAgICBsaXN0T2ZTdHlsZXMucHVzaChzdHlsZXNbYnJlYWtwb2ludFN0eWxlTmFtZURvd25dKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmhhbmRsZWQgdHlwZTogJHt0eXBlb2YgYXJnfWApXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGxpc3RPZlN0eWxlc1xuICB9LCBhY3R1YWxEZXBlbmRlbmNpZXMpXG5cbiAgcmV0dXJuIGxpc3RPZlN0eWxlc1xufVxuXG5leHBvcnQgZGVmYXVsdCB1c2VTdHlsZXNcbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsTUFBTSxNQUFNLFVBQVU7QUFDN0IsU0FBUUMsSUFBSSxRQUFPLFdBQVc7QUFDOUIsT0FBTyxLQUFLQyxVQUFVLE1BQU0sWUFBWTtBQUN4QyxPQUFPQyxhQUFhLE1BQU0sa0JBQWtCO0FBQzVDLFNBQVFDLE9BQU8sUUFBTyxPQUFPO0FBRTdCLE1BQU1DLFNBQVMsR0FBR0EsQ0FBQ0MsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFlBQVksR0FBRyxFQUFFLEtBQUs7RUFDckQsTUFBTUMsVUFBVSxHQUFHTixhQUFhLENBQUMsQ0FBQztFQUNsQyxNQUFNTyxjQUFjLEdBQUdULElBQUksQ0FBQ1EsVUFBVSxFQUFFLE1BQU0sQ0FBQztFQUMvQyxNQUFNRSxrQkFBa0IsR0FBRyxDQUFDLEdBQUdILFlBQVksRUFBRUUsY0FBYyxDQUFDO0VBRTVELE1BQU1FLFlBQVksR0FBR1IsT0FBTyxDQUFDLE1BQU07SUFDakMsTUFBTVEsWUFBWSxHQUFHLEVBQUU7SUFDdkIsTUFBTUMsa0JBQWtCLEdBQUcsQ0FBQyxHQUFHYixNQUFNLENBQUNjLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQ0MsT0FBTyxDQUFDLENBQUM7SUFFakUsS0FBSyxNQUFNQyxHQUFHLElBQUlULElBQUksRUFBRTtNQUN0QixJQUFJLE9BQU9TLEdBQUcsSUFBSSxRQUFRLEVBQUU7UUFDMUIsSUFBSSxFQUFFQSxHQUFHLElBQUlWLE1BQU0sQ0FBQyxFQUFFO1VBQ3BCLE1BQU0sSUFBSVcsS0FBSyxDQUFDLG9CQUFvQkQsR0FBRyxzQkFBc0JFLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDYixNQUFNLENBQUMsQ0FBQ2MsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDaEc7UUFFQVIsWUFBWSxDQUFDUyxJQUFJLENBQUNmLE1BQU0sQ0FBQ1UsR0FBRyxDQUFDLENBQUM7UUFFOUIsS0FBSyxNQUFNTSxjQUFjLElBQUlULGtCQUFrQixFQUFFO1VBQy9DLE1BQU1ILGNBQWMsR0FBR1ksY0FBYyxDQUFDLENBQUMsQ0FBQztVQUN4QyxNQUFNQyxxQkFBcUIsR0FBRyxHQUFHUCxHQUFHLEdBQUdkLFVBQVUsQ0FBQ3NCLFFBQVEsQ0FBQ2QsY0FBYyxDQUFDLElBQUk7VUFDOUUsTUFBTWUsdUJBQXVCLEdBQUcsR0FBR1QsR0FBRyxHQUFHZCxVQUFVLENBQUNzQixRQUFRLENBQUNkLGNBQWMsQ0FBQyxNQUFNO1VBQ2xGLE1BQU1nQixjQUFjLEdBQUd6QixJQUFJLENBQUNRLFVBQVUsRUFBRSxHQUFHQyxjQUFjLElBQUksQ0FBQztVQUM5RCxNQUFNaUIsZ0JBQWdCLEdBQUcxQixJQUFJLENBQUNRLFVBQVUsRUFBRSxHQUFHQyxjQUFjLE1BQU0sQ0FBQztVQUVsRSxJQUFJYSxxQkFBcUIsSUFBSWpCLE1BQU0sSUFBSW9CLGNBQWMsRUFBRTtZQUNyRGQsWUFBWSxDQUFDUyxJQUFJLENBQUNmLE1BQU0sQ0FBQ2lCLHFCQUFxQixDQUFDLENBQUM7VUFDbEQ7VUFFQSxJQUFJRSx1QkFBdUIsSUFBSW5CLE1BQU0sSUFBSXFCLGdCQUFnQixFQUFFO1lBQ3pEZixZQUFZLENBQUNTLElBQUksQ0FBQ2YsTUFBTSxDQUFDbUIsdUJBQXVCLENBQUMsQ0FBQztVQUNwRDtRQUNGO01BQ0YsQ0FBQyxNQUFNO1FBQ0wsTUFBTSxJQUFJUixLQUFLLENBQUMsbUJBQW1CLE9BQU9ELEdBQUcsRUFBRSxDQUFDO01BQ2xEO0lBQ0Y7SUFFQSxPQUFPSixZQUFZO0VBQ3JCLENBQUMsRUFBRUQsa0JBQWtCLENBQUM7RUFFdEIsT0FBT0MsWUFBWTtBQUNyQixDQUFDO0FBRUQsZUFBZVAsU0FBUyIsImlnbm9yZUxpc3QiOltdfQ==
@@ -1,6 +1,6 @@
1
1
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
2
2
  import memo from "set-state-compare/src/memo";
3
- import React from "react";
3
+ import React, { useMemo } from "react";
4
4
  import { Text } from "react-native";
5
5
  import { useDefaultStyle, WithDefaultStyle } from "./default-style";
6
6
  export default memo(props => {
@@ -9,11 +9,36 @@ export default memo(props => {
9
9
  ...restProps
10
10
  } = props;
11
11
  const defaultStyle = useDefaultStyle();
12
- const actualStyle = Object.assign({}, defaultStyle?.Text, style);
12
+ const {
13
+ actualStyle,
14
+ stylesList
15
+ } = useMemo(() => {
16
+ const stylesList = [];
17
+ const actualStyle = {};
18
+ if (defaultStyle?.Text) {
19
+ Object.assign(actualStyle, defaultStyle.Text);
20
+ stylesList.push(defaultStyle.Text);
21
+ }
22
+ if (style) {
23
+ if (Array.isArray(style)) {
24
+ for (const styleI of style) {
25
+ Object.assign(actualStyle, styleI);
26
+ stylesList.push(styleI);
27
+ }
28
+ } else {
29
+ Object.assign(actualStyle, style);
30
+ stylesList.push(style);
31
+ }
32
+ }
33
+ return {
34
+ actualStyle,
35
+ stylesList
36
+ };
37
+ }, [defaultStyle?.Text, style]);
13
38
  return /*#__PURE__*/React.createElement(WithDefaultStyle, {
14
39
  style: actualStyle
15
40
  }, /*#__PURE__*/React.createElement(Text, _extends({
16
- style: actualStyle
41
+ style: stylesList
17
42
  }, restProps)));
18
43
  });
19
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtZW1vIiwiUmVhY3QiLCJUZXh0IiwidXNlRGVmYXVsdFN0eWxlIiwiV2l0aERlZmF1bHRTdHlsZSIsInByb3BzIiwic3R5bGUiLCJyZXN0UHJvcHMiLCJkZWZhdWx0U3R5bGUiLCJhY3R1YWxTdHlsZSIsIk9iamVjdCIsImFzc2lnbiIsImNyZWF0ZUVsZW1lbnQiLCJfZXh0ZW5kcyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy90ZXh0LmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbWVtbyBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvc3JjL21lbW9cIlxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQge1RleHR9IGZyb20gXCJyZWFjdC1uYXRpdmVcIlxuaW1wb3J0IHt1c2VEZWZhdWx0U3R5bGUsIFdpdGhEZWZhdWx0U3R5bGV9IGZyb20gXCIuL2RlZmF1bHQtc3R5bGVcIlxuXG5leHBvcnQgZGVmYXVsdCBtZW1vKChwcm9wcykgPT4ge1xuICBjb25zdCB7c3R5bGUsIC4uLnJlc3RQcm9wc30gPSBwcm9wc1xuICBjb25zdCBkZWZhdWx0U3R5bGUgPSB1c2VEZWZhdWx0U3R5bGUoKVxuICBjb25zdCBhY3R1YWxTdHlsZSA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRTdHlsZT8uVGV4dCwgc3R5bGUpXG5cbiAgcmV0dXJuIChcbiAgICA8V2l0aERlZmF1bHRTdHlsZSBzdHlsZT17YWN0dWFsU3R5bGV9PlxuICAgICAgPFRleHQgc3R5bGU9e2FjdHVhbFN0eWxlfSB7Li4ucmVzdFByb3BzfSAvPlxuICAgIDwvV2l0aERlZmF1bHRTdHlsZT5cbiAgKVxufSlcbiJdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU9BLElBQUksTUFBTSw0QkFBNEI7QUFDN0MsT0FBT0MsS0FBSyxNQUFNLE9BQU87QUFDekIsU0FBUUMsSUFBSSxRQUFPLGNBQWM7QUFDakMsU0FBUUMsZUFBZSxFQUFFQyxnQkFBZ0IsUUFBTyxpQkFBaUI7QUFFakUsZUFBZUosSUFBSSxDQUFFSyxLQUFLLElBQUs7RUFDN0IsTUFBTTtJQUFDQyxLQUFLO0lBQUUsR0FBR0M7RUFBUyxDQUFDLEdBQUdGLEtBQUs7RUFDbkMsTUFBTUcsWUFBWSxHQUFHTCxlQUFlLENBQUMsQ0FBQztFQUN0QyxNQUFNTSxXQUFXLEdBQUdDLE1BQU0sQ0FBQ0MsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFSCxZQUFZLEVBQUVOLElBQUksRUFBRUksS0FBSyxDQUFDO0VBRWhFLG9CQUNFTCxLQUFBLENBQUFXLGFBQUEsQ0FBQ1IsZ0JBQWdCO0lBQUNFLEtBQUssRUFBRUc7RUFBWSxnQkFDbkNSLEtBQUEsQ0FBQVcsYUFBQSxDQUFDVixJQUFJLEVBQUFXLFFBQUE7SUFBQ1AsS0FBSyxFQUFFRztFQUFZLEdBQUtGLFNBQVMsQ0FBRyxDQUMxQixDQUFDO0FBRXZCLENBQUMsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
44
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtZW1vIiwiUmVhY3QiLCJ1c2VNZW1vIiwiVGV4dCIsInVzZURlZmF1bHRTdHlsZSIsIldpdGhEZWZhdWx0U3R5bGUiLCJwcm9wcyIsInN0eWxlIiwicmVzdFByb3BzIiwiZGVmYXVsdFN0eWxlIiwiYWN0dWFsU3R5bGUiLCJzdHlsZXNMaXN0IiwiT2JqZWN0IiwiYXNzaWduIiwicHVzaCIsIkFycmF5IiwiaXNBcnJheSIsInN0eWxlSSIsImNyZWF0ZUVsZW1lbnQiLCJfZXh0ZW5kcyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy90ZXh0LmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbWVtbyBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvc3JjL21lbW9cIlxuaW1wb3J0IFJlYWN0LCB7dXNlTWVtb30gZnJvbSBcInJlYWN0XCJcbmltcG9ydCB7VGV4dH0gZnJvbSBcInJlYWN0LW5hdGl2ZVwiXG5pbXBvcnQge3VzZURlZmF1bHRTdHlsZSwgV2l0aERlZmF1bHRTdHlsZX0gZnJvbSBcIi4vZGVmYXVsdC1zdHlsZVwiXG5cbmV4cG9ydCBkZWZhdWx0IG1lbW8oKHByb3BzKSA9PiB7XG4gIGNvbnN0IHtzdHlsZSwgLi4ucmVzdFByb3BzfSA9IHByb3BzXG4gIGNvbnN0IGRlZmF1bHRTdHlsZSA9IHVzZURlZmF1bHRTdHlsZSgpXG4gIGNvbnN0IHthY3R1YWxTdHlsZSwgc3R5bGVzTGlzdH0gPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBzdHlsZXNMaXN0ID0gW11cbiAgICBjb25zdCBhY3R1YWxTdHlsZSA9IHt9XG5cbiAgICBpZiAoZGVmYXVsdFN0eWxlPy5UZXh0KSB7XG4gICAgICBPYmplY3QuYXNzaWduKGFjdHVhbFN0eWxlLCBkZWZhdWx0U3R5bGUuVGV4dClcbiAgICAgIHN0eWxlc0xpc3QucHVzaChkZWZhdWx0U3R5bGUuVGV4dClcbiAgICB9XG5cbiAgICBpZiAoc3R5bGUpIHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHN0eWxlKSkge1xuICAgICAgICBmb3IgKGNvbnN0IHN0eWxlSSBvZiBzdHlsZSkge1xuICAgICAgICAgIE9iamVjdC5hc3NpZ24oYWN0dWFsU3R5bGUsIHN0eWxlSSlcbiAgICAgICAgICBzdHlsZXNMaXN0LnB1c2goc3R5bGVJKVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBPYmplY3QuYXNzaWduKGFjdHVhbFN0eWxlLCBzdHlsZSlcbiAgICAgICAgc3R5bGVzTGlzdC5wdXNoKHN0eWxlKVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7YWN0dWFsU3R5bGUsIHN0eWxlc0xpc3R9XG4gIH0sIFtkZWZhdWx0U3R5bGU/LlRleHQsIHN0eWxlXSlcblxuICByZXR1cm4gKFxuICAgIDxXaXRoRGVmYXVsdFN0eWxlIHN0eWxlPXthY3R1YWxTdHlsZX0+XG4gICAgICA8VGV4dCBzdHlsZT17c3R5bGVzTGlzdH0gey4uLnJlc3RQcm9wc30gLz5cbiAgICA8L1dpdGhEZWZhdWx0U3R5bGU+XG4gIClcbn0pXG4iXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPQSxJQUFJLE1BQU0sNEJBQTRCO0FBQzdDLE9BQU9DLEtBQUssSUFBR0MsT0FBTyxRQUFPLE9BQU87QUFDcEMsU0FBUUMsSUFBSSxRQUFPLGNBQWM7QUFDakMsU0FBUUMsZUFBZSxFQUFFQyxnQkFBZ0IsUUFBTyxpQkFBaUI7QUFFakUsZUFBZUwsSUFBSSxDQUFFTSxLQUFLLElBQUs7RUFDN0IsTUFBTTtJQUFDQyxLQUFLO0lBQUUsR0FBR0M7RUFBUyxDQUFDLEdBQUdGLEtBQUs7RUFDbkMsTUFBTUcsWUFBWSxHQUFHTCxlQUFlLENBQUMsQ0FBQztFQUN0QyxNQUFNO0lBQUNNLFdBQVc7SUFBRUM7RUFBVSxDQUFDLEdBQUdULE9BQU8sQ0FBQyxNQUFNO0lBQzlDLE1BQU1TLFVBQVUsR0FBRyxFQUFFO0lBQ3JCLE1BQU1ELFdBQVcsR0FBRyxDQUFDLENBQUM7SUFFdEIsSUFBSUQsWUFBWSxFQUFFTixJQUFJLEVBQUU7TUFDdEJTLE1BQU0sQ0FBQ0MsTUFBTSxDQUFDSCxXQUFXLEVBQUVELFlBQVksQ0FBQ04sSUFBSSxDQUFDO01BQzdDUSxVQUFVLENBQUNHLElBQUksQ0FBQ0wsWUFBWSxDQUFDTixJQUFJLENBQUM7SUFDcEM7SUFFQSxJQUFJSSxLQUFLLEVBQUU7TUFDVCxJQUFJUSxLQUFLLENBQUNDLE9BQU8sQ0FBQ1QsS0FBSyxDQUFDLEVBQUU7UUFDeEIsS0FBSyxNQUFNVSxNQUFNLElBQUlWLEtBQUssRUFBRTtVQUMxQkssTUFBTSxDQUFDQyxNQUFNLENBQUNILFdBQVcsRUFBRU8sTUFBTSxDQUFDO1VBQ2xDTixVQUFVLENBQUNHLElBQUksQ0FBQ0csTUFBTSxDQUFDO1FBQ3pCO01BQ0YsQ0FBQyxNQUFNO1FBQ0xMLE1BQU0sQ0FBQ0MsTUFBTSxDQUFDSCxXQUFXLEVBQUVILEtBQUssQ0FBQztRQUNqQ0ksVUFBVSxDQUFDRyxJQUFJLENBQUNQLEtBQUssQ0FBQztNQUN4QjtJQUNGO0lBRUEsT0FBTztNQUFDRyxXQUFXO01BQUVDO0lBQVUsQ0FBQztFQUNsQyxDQUFDLEVBQUUsQ0FBQ0YsWUFBWSxFQUFFTixJQUFJLEVBQUVJLEtBQUssQ0FBQyxDQUFDO0VBRS9CLG9CQUNFTixLQUFBLENBQUFpQixhQUFBLENBQUNiLGdCQUFnQjtJQUFDRSxLQUFLLEVBQUVHO0VBQVksZ0JBQ25DVCxLQUFBLENBQUFpQixhQUFBLENBQUNmLElBQUksRUFBQWdCLFFBQUE7SUFBQ1osS0FBSyxFQUFFSTtFQUFXLEdBQUtILFNBQVMsQ0FBRyxDQUN6QixDQUFDO0FBRXZCLENBQUMsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kaspernj/api-maker",
3
- "version": "1.0.2012",
3
+ "version": "1.0.2013",
4
4
  "description": "My new module",
5
5
  "main": "build/index.js",
6
6
  "scripts": {
package/src/is-expo.js ADDED
@@ -0,0 +1,18 @@
1
+ import {digg, digs} from "diggerize"
2
+
3
+ let isExpo = false
4
+
5
+ try {
6
+ const REQUIRE_TERMINATOR = ""
7
+ const Constants = require(`expo-constants${REQUIRE_TERMINATOR}`)
8
+ const executionEnvironment = digg(Constants, "default", "executionEnvironment")
9
+ const {ExecutionEnvironment} = digs(Constants, "ExecutionEnvironment")
10
+ const {Bare, Standalone, StoreClient} = digs(ExecutionEnvironment, "Bare", "Standalone", "StoreClient")
11
+
12
+ // True if the app is running in an `expo build` app or if it's running in Expo Go.
13
+ isExpo = executionEnvironment === Bare || executionEnvironment === Standalone || executionEnvironment === StoreClient
14
+ } catch (error) {
15
+ // Do nothing - failed to require expo-constants
16
+ }
17
+
18
+ export default isExpo
@@ -1,22 +1,33 @@
1
1
  import {useCallback, useLayoutEffect} from "react"
2
- import apiMakerConfig from "@kaspernj/api-maker/build/config"
2
+ import config from "./config"
3
3
  import {Dimensions} from "react-native"
4
4
  import * as inflection from "inflection"
5
+ import isExpo from "./is-expo"
5
6
  import useShape from "set-state-compare/src/use-shape"
6
7
 
7
- const calculateBreakPoint = (window) => {
8
- const windowWidth = window.width
8
+ const calculateBreakPoint = (windowObject) => {
9
+ let windowWidth
10
+
11
+ if (isExpo) {
12
+ windowWidth = windowObject.width
13
+ } else {
14
+ // Use 'window.innerWidth' outside Expo because sometimes window width excludes scroll
15
+ windowWidth = window.innerWidth
16
+ }
17
+
9
18
  const result = {}
10
19
 
11
- for (const breakpointData of apiMakerConfig.getBreakPoints()) {
20
+ for (const breakpointData of config.getBreakPoints()) {
12
21
  const breakpoint = breakpointData[0]
13
22
  const width = breakpointData[1]
14
23
 
15
24
  if (!result.name && windowWidth >= width) {
16
25
  result.name = breakpoint
26
+ result[`${breakpoint}Down`] = true
27
+ } else {
28
+ result[`${breakpoint}Down`] = !result.name
17
29
  }
18
30
 
19
- result[`${breakpoint}Down`] = !result.name
20
31
  result[`${breakpoint}Up`] = Boolean(result.name)
21
32
  }
22
33
 
@@ -31,8 +42,8 @@ const sizeTypes = ["down", "up"]
31
42
 
32
43
  const useBreakpoint = () => {
33
44
  const s = useShape()
34
- const onCalled = useCallback(({window}) => {
35
- const breakpoint = calculateBreakPoint(window)
45
+ const onCalled = useCallback(({window: windowObject}) => {
46
+ const breakpoint = calculateBreakPoint(windowObject)
36
47
 
37
48
  if (breakpoint.name != s.s.breakpoint.name) {
38
49
  s.set({breakpoint})
@@ -0,0 +1,50 @@
1
+ import config from "./config"
2
+ import {digg} from "diggerize"
3
+ import * as inflection from "inflection"
4
+ import useBreakpoint from "./use-breakpoint"
5
+ import {useMemo} from "react"
6
+
7
+ const useStyles = (styles, args, dependencies = []) => {
8
+ const breakpoint = useBreakpoint()
9
+ const breakpointName = digg(breakpoint, "name")
10
+ const actualDependencies = [...dependencies, breakpointName]
11
+
12
+ const listOfStyles = useMemo(() => {
13
+ const listOfStyles = []
14
+ const breakpointsReverse = [...config.getBreakPoints()].reverse()
15
+
16
+ for (const arg of args) {
17
+ if (typeof arg == "string") {
18
+ if (!(arg in styles)) {
19
+ throw new Error(`No such styling '${arg}' in given styles: ${Object.keys(styles).join(", ")}`)
20
+ }
21
+
22
+ listOfStyles.push(styles[arg])
23
+
24
+ for (const breakpointData of breakpointsReverse) {
25
+ const breakpointName = breakpointData[0]
26
+ const breakpointStyleNameUp = `${arg}${inflection.camelize(breakpointName)}Up`
27
+ const breakpointStyleNameDown = `${arg}${inflection.camelize(breakpointName)}Down`
28
+ const breakpointIsUp = digg(breakpoint, `${breakpointName}Up`)
29
+ const breakpointIsDown = digg(breakpoint, `${breakpointName}Down`)
30
+
31
+ if (breakpointStyleNameUp in styles && breakpointIsUp) {
32
+ listOfStyles.push(styles[breakpointStyleNameUp])
33
+ }
34
+
35
+ if (breakpointStyleNameDown in styles && breakpointIsDown) {
36
+ listOfStyles.push(styles[breakpointStyleNameDown])
37
+ }
38
+ }
39
+ } else {
40
+ throw new Error(`Unhandled type: ${typeof arg}`)
41
+ }
42
+ }
43
+
44
+ return listOfStyles
45
+ }, actualDependencies)
46
+
47
+ return listOfStyles
48
+ }
49
+
50
+ export default useStyles
@@ -1,16 +1,38 @@
1
1
  import memo from "set-state-compare/src/memo"
2
- import React from "react"
2
+ import React, {useMemo} from "react"
3
3
  import {Text} from "react-native"
4
4
  import {useDefaultStyle, WithDefaultStyle} from "./default-style"
5
5
 
6
6
  export default memo((props) => {
7
7
  const {style, ...restProps} = props
8
8
  const defaultStyle = useDefaultStyle()
9
- const actualStyle = Object.assign({}, defaultStyle?.Text, style)
9
+ const {actualStyle, stylesList} = useMemo(() => {
10
+ const stylesList = []
11
+ const actualStyle = {}
12
+
13
+ if (defaultStyle?.Text) {
14
+ Object.assign(actualStyle, defaultStyle.Text)
15
+ stylesList.push(defaultStyle.Text)
16
+ }
17
+
18
+ if (style) {
19
+ if (Array.isArray(style)) {
20
+ for (const styleI of style) {
21
+ Object.assign(actualStyle, styleI)
22
+ stylesList.push(styleI)
23
+ }
24
+ } else {
25
+ Object.assign(actualStyle, style)
26
+ stylesList.push(style)
27
+ }
28
+ }
29
+
30
+ return {actualStyle, stylesList}
31
+ }, [defaultStyle?.Text, style])
10
32
 
11
33
  return (
12
34
  <WithDefaultStyle style={actualStyle}>
13
- <Text style={actualStyle} {...restProps} />
35
+ <Text style={stylesList} {...restProps} />
14
36
  </WithDefaultStyle>
15
37
  )
16
38
  })
package/link.sh DELETED
@@ -1,8 +0,0 @@
1
- #!/bin/sh
2
-
3
- cd node_modules
4
-
5
- rm -rf react
6
- ln -s ../../../gratisbyggetilbud_rails/node_modules/react
7
-
8
- yarn link i18n-on-steroids