@kaspernj/api-maker 1.0.429 → 1.0.431

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": "@kaspernj/api-maker",
3
- "version": "1.0.429",
3
+ "version": "1.0.431",
4
4
  "type": "module",
5
5
  "description": "",
6
6
  "main": "index.js",
@@ -5,7 +5,7 @@ import PropTypes from "prop-types"
5
5
  import propTypesExact from "prop-types-exact"
6
6
  import qs from "qs"
7
7
  import {memo, useMemo} from "react"
8
- import {Text} from "react-native"
8
+ import Text from "../utils/text"
9
9
  import Result from "../result"
10
10
  import {shapeComponent} from "set-state-compare/src/shape-component.js"
11
11
  import urlEncode from "../url-encode.mjs"
@@ -3,7 +3,7 @@ import * as inflection from "inflection"
3
3
  import PropTypes from "prop-types"
4
4
  import qs from "qs"
5
5
  import {memo} from "react"
6
- import {Text} from "react-native"
6
+ import Text from "../utils/text"
7
7
  import {shapeComponent} from "set-state-compare/src/shape-component.js"
8
8
  import urlEncode from "../url-encode.mjs"
9
9
 
@@ -34,13 +34,20 @@ export default memo(shapeComponent(class EditAttributeContent extends BaseCompon
34
34
  id,
35
35
  model
36
36
  },
37
- onChangeValue: this.tt.onChangeValue
38
- }), [attribute.attribute, id, model])
37
+ onChangeValue: this.tt.onChangeValue,
38
+ value: this.s.value
39
+ }), [attribute.attribute, id, model, this.s.value])
39
40
 
40
41
  return attribute.content(contentArgs)
41
42
  }
42
43
 
43
- defaultValue = () => this.p.model[this.p.attribute.attribute]() || ""
44
+ defaultValue = () => {
45
+ if (!(this.p.attribute.attribute in this.p.model)) {
46
+ throw new Error(`No attribute called ${this.p.attribute.attribute} in model ${this.p.model.modelClassData().name}`)
47
+ }
48
+
49
+ return this.p.model[this.p.attribute.attribute]() || ""
50
+ }
44
51
 
45
52
  onChangeValue = (newValue) => {
46
53
  this.setState({value: newValue})
@@ -1,9 +1,10 @@
1
1
  import {memo, useMemo} from "react"
2
- import {Text, TextInput, View} from "react-native"
2
+ import {TextInput, View} from "react-native"
3
3
  import BaseComponent from "../../base-component"
4
4
  import PropTypes from "prop-types"
5
5
  import propTypesExact from "prop-types-exact"
6
6
  import {shapeComponent} from "set-state-compare/src/shape-component.js"
7
+ import Text from "../../utils/text"
7
8
  import {useForm} from "../../form"
8
9
 
9
10
  export default memo(shapeComponent(class EditAttributeInput extends BaseComponent {
@@ -41,7 +42,7 @@ export default memo(shapeComponent(class EditAttributeInput extends BaseComponen
41
42
  }
42
43
 
43
44
  return (
44
- <View style={{marginBottom: 12}}>
45
+ <View dataSet={{component: "api-maker/super-admin/edit-page/edit-attribute-input"}}>
45
46
  <Text>{label}</Text>
46
47
  <View>
47
48
  <TextInput
@@ -7,6 +7,7 @@ import Locales from "shared/locales"
7
7
  import {memo} from "react"
8
8
  import PropTypes from "prop-types"
9
9
  import propTypesExact from "prop-types-exact"
10
+ import {View} from "react-native"
10
11
  import {shapeComponent} from "set-state-compare/src/shape-component.js"
11
12
 
12
13
  export default memo(shapeComponent(class EditAttribute extends BaseComponent {
@@ -22,7 +23,7 @@ export default memo(shapeComponent(class EditAttribute extends BaseComponent {
22
23
  const camelizedLower = digg(modelClass.modelClassData(), "camelizedLower")
23
24
 
24
25
  return (
25
- <>
26
+ <View dataSet={{component: "api-maker/super-admin/edit-page/edit-attribute"}} style={{marginBottom: attribute.translated ? undefined : 12}}>
26
27
  {attribute.content &&
27
28
  <EditAttributeContent
28
29
  attribute={attribute}
@@ -32,14 +33,15 @@ export default memo(shapeComponent(class EditAttribute extends BaseComponent {
32
33
  />
33
34
  }
34
35
  {!attribute.content && attribute.translated && availableLocales.map((locale) =>
35
- <EditAttributeInput
36
- attributeName={`${attribute.attribute}${inflection.camelize(locale)}`}
37
- id={`${inflection.underscore(camelizedLower)}_${inflection.underscore(attribute.attribute)}_${locale}`}
38
- label={`${modelClass.humanAttributeName(attribute.attribute)} (${locale})`}
39
- model={model}
40
- name={`${inflection.underscore(attribute.attribute)}_${locale}`}
41
- key={locale}
42
- />
36
+ <View key={locale} style={{marginBottom: 12}}>
37
+ <EditAttributeInput
38
+ attributeName={`${attribute.attribute}${inflection.camelize(locale)}`}
39
+ id={`${inflection.underscore(camelizedLower)}_${inflection.underscore(attribute.attribute)}_${locale}`}
40
+ label={`${modelClass.humanAttributeName(attribute.attribute)} (${locale})`}
41
+ model={model}
42
+ name={`${inflection.underscore(attribute.attribute)}_${locale}`}
43
+ />
44
+ </View>
43
45
  )}
44
46
  {!attribute.content && !attribute.translated &&
45
47
  <EditAttributeInput
@@ -50,7 +52,7 @@ export default memo(shapeComponent(class EditAttribute extends BaseComponent {
50
52
  name={inflection.underscore(attribute.attribute)}
51
53
  />
52
54
  }
53
- </>
55
+ </View>
54
56
  )
55
57
  }
56
58
  }))
@@ -1,4 +1,4 @@
1
- import {Pressable, Text, View} from "react-native"
1
+ import {Pressable, View} from "react-native"
2
2
  import BaseComponent from "../base-component"
3
3
  import ConfigReader from "./config-reader.jsx"
4
4
  import {digg} from "diggerize"
@@ -10,6 +10,7 @@ import {memo} from "react"
10
10
  import PropTypes from "prop-types"
11
11
  import propTypesExact from "prop-types-exact"
12
12
  import {shapeComponent} from "set-state-compare/src/shape-component.js"
13
+ import Text from "../utils/text"
13
14
  import useCurrentUser from "../use-current-user"
14
15
  import useModel from "../use-model"
15
16
  import useQueryParams from "on-location-changed/src/use-query-params"
@@ -1,4 +1,4 @@
1
- import {Pressable, Text} from "react-native"
1
+ import {Pressable} from "react-native"
2
2
  import BaseComponent from "../base-component"
3
3
  import EditPage from "./edit-page"
4
4
  import hasEditConfig from "./has-edit-config.js"
@@ -11,6 +11,7 @@ import {shapeComponent} from "set-state-compare/src/shape-component.js"
11
11
  import ShowPage from "./show-page"
12
12
  import ShowReflectionActions from "./show-reflection-actions"
13
13
  import ShowReflectionPage from "./show-reflection-page"
14
+ import Text from "../utils/text"
14
15
  import useCanCan from "../use-can-can"
15
16
  import useCurrentUser from "../use-current-user.mjs"
16
17
  import useQueryParams from "on-location-changed/src/use-query-params"
@@ -5,7 +5,8 @@ import {memo, useRef} from "react"
5
5
  import PropTypes from "prop-types"
6
6
  import PropTypesExact from "prop-types-exact"
7
7
  import {shapeComponent} from "set-state-compare/src/shape-component.js"
8
- import {Pressable, Text, View} from "react-native"
8
+ import Text from "../../../utils/text"
9
+ import {Pressable, View} from "react-native"
9
10
  import useBreakpoint from "../../../use-breakpoint"
10
11
  import useEventListener from "../../../use-event-listener"
11
12
 
@@ -7,9 +7,10 @@ import MenuItem from "./menu-item"
7
7
  import PropTypes from "prop-types"
8
8
  import PropTypesExact from "prop-types-exact"
9
9
  import {shapeComponent} from "set-state-compare/src/shape-component.js"
10
+ import Text from "../../../utils/text"
10
11
  import useCurrentUser from "../../../use-current-user"
11
12
  import useI18n from "i18n-on-steroids/src/use-i18n.mjs"
12
- import {Text, View} from "react-native"
13
+ import {View} from "react-native"
13
14
 
14
15
  export default memo(shapeComponent(class ComponentsAdminLayoutMenu extends BaseComponent {
15
16
  static propTypes = PropTypesExact({
@@ -5,7 +5,7 @@ import Link from "../../../../link"
5
5
  import {memo} from "react"
6
6
  import PropTypes from "prop-types"
7
7
  import {shapeComponent} from "set-state-compare/src/shape-component.js"
8
- import {Text} from "react-native"
8
+ import Text from "../../../../utils/text"
9
9
 
10
10
  export default memo(shapeComponent(class ComponentsAdminLayoutMenuMenuItem extends BaseComponent {
11
11
  static propTypes = {
@@ -5,9 +5,10 @@ import PropTypesExact from "prop-types-exact"
5
5
  import {memo} from "react"
6
6
  import {shapeComponent} from "set-state-compare/src/shape-component.js"
7
7
  import ShowReflectionLink from "./show-reflection-link"
8
+ import Text from "../utils/text"
8
9
  import useI18n from "i18n-on-steroids/src/use-i18n.mjs"
9
10
  import useQueryParams from "on-location-changed/src/use-query-params"
10
- import {Text, View} from "react-native"
11
+ import {View} from "react-native"
11
12
 
12
13
  export default memo(shapeComponent(class ApiMakerSuperAdminShowNav extends BaseComponent {
13
14
  static propTypes = PropTypesExact({
@@ -5,7 +5,7 @@ import Link from "../../link"
5
5
  import {memo} from "react"
6
6
  import Params from "../../params"
7
7
  import {shapeComponent} from "set-state-compare/src/shape-component.js"
8
- import {Text} from "react-native"
8
+ import Text from "../../utils/text"
9
9
 
10
10
  export default memo(shapeComponent(class ApiMakerSuperAdminShowPageBelongsToAttributeRow extends BaseComponent {
11
11
  render() {
@@ -3,7 +3,7 @@ import {digg} from "diggerize"
3
3
  import Link from "../link"
4
4
  import {memo} from "react"
5
5
  import {shapeComponent} from "set-state-compare/src/shape-component.js"
6
- import {Text} from "react-native"
6
+ import Text from "../utils/text"
7
7
  import {useMemo} from "react"
8
8
 
9
9
  export default memo(shapeComponent(class ApiMakerSuperAdminShowReflectionLink extends BaseComponent {
@@ -2,7 +2,7 @@ import {digs} from "diggerize"
2
2
  import * as inflection from "inflection"
3
3
  import modelCallbackArgs from "./model-callback-args.mjs"
4
4
  import MoneyFormatter from "../money-formatter"
5
- import {Text} from "react-native"
5
+ import Text from "../utils/text"
6
6
 
7
7
  export default class ApiMakerTableColumnContent {
8
8
  constructor({column, mode = "react-native", model, table}) {
@@ -3,8 +3,9 @@ import {digg} from "diggerize"
3
3
  import PropTypes from "prop-types"
4
4
  import PropTypesExact from "prop-types-exact"
5
5
  import {memo} from "react"
6
- import {Pressable, Text} from "react-native"
6
+ import {Pressable} from "react-native"
7
7
  import {shapeComponent} from "set-state-compare/src/shape-component"
8
+ import Text from "../../utils/text"
8
9
 
9
10
  export default memo(shapeComponent(class AttributeElement extends BaseComponent {
10
11
  static propTypes = PropTypesExact({
@@ -7,12 +7,13 @@ import Input from "../../inputs/input"
7
7
  import PropTypes from "prop-types"
8
8
  import PropTypesExact from "prop-types-exact"
9
9
  import {memo, useMemo, useRef} from "react"
10
- import {ActivityIndicator, Text, View} from "react-native"
10
+ import {ActivityIndicator, View} from "react-native"
11
11
  import ReflectionElement from "./reflection-element"
12
12
  import ScopeElement from "./scope-element"
13
13
  import Select from "../../inputs/select"
14
14
  import Services from "../../services.mjs"
15
15
  import {shapeComponent} from "set-state-compare/src/shape-component"
16
+ import Text from "../../utils/text"
16
17
 
17
18
  export default memo(shapeComponent(class ApiMakerTableFiltersFilterForm extends BaseComponent {
18
19
  static propTypes = PropTypesExact({
@@ -1,10 +1,11 @@
1
- import {Pressable, Text, View} from "react-native"
1
+ import {Pressable, View} from "react-native"
2
2
  import BaseComponent from "../../base-component"
3
3
  import FontAwesomeIcon from "react-native-vector-icons/FontAwesome"
4
4
  import PropTypes from "prop-types"
5
5
  import PropTypesExact from "prop-types-exact"
6
6
  import {memo} from "react"
7
7
  import {shapeComponent} from "set-state-compare/src/shape-component"
8
+ import Text from "../../utils/text"
8
9
 
9
10
  export default memo(shapeComponent(class ApiMakerTableFilter extends BaseComponent {
10
11
  static defaultProps = {
@@ -5,7 +5,8 @@ import {digg} from "diggerize"
5
5
  import {memo, useMemo} from "react"
6
6
  import {shapeComponent} from "set-state-compare/src/shape-component.js"
7
7
  import {TableSearch} from "../../models.mjs.erb"
8
- import {Pressable, Text, View} from "react-native"
8
+ import {Pressable, View} from "react-native"
9
+ import Text from "../../utils/text"
9
10
  import useI18n from "i18n-on-steroids/src/use-i18n.mjs"
10
11
 
11
12
  const SearchLink = memo(shapeComponent(class SearchLink extends BaseComponent {
@@ -2,8 +2,9 @@ import BaseComponent from "../../base-component"
2
2
  import PropTypes from "prop-types"
3
3
  import PropTypesExact from "prop-types-exact"
4
4
  import {memo} from "react"
5
- import {Pressable, Text} from "react-native"
5
+ import {Pressable} from "react-native"
6
6
  import {shapeComponent} from "set-state-compare/src/shape-component"
7
+ import Text from "../../utils/text"
7
8
 
8
9
  export default memo(shapeComponent(class ReflectionElement extends BaseComponent {
9
10
  static propTypes = PropTypesExact({
@@ -1,8 +1,9 @@
1
1
  import BaseComponent from "../../base-component"
2
2
  import PropTypes from "prop-types"
3
3
  import {memo} from "react"
4
- import {Pressable, Text} from "react-native"
4
+ import {Pressable} from "react-native"
5
5
  import {shapeComponent} from "set-state-compare/src/shape-component"
6
+ import Text from "../../utils/text"
6
7
 
7
8
  export default memo(shapeComponent(class ScopeElement extends BaseComponent {
8
9
  static defaultProps = {
@@ -3,11 +3,12 @@ import classNames from "classnames"
3
3
  import {digs} from "diggerize"
4
4
  import Header from "./components/header"
5
5
  import {memo} from "react"
6
- import {Platform, Pressable, Text, View} from "react-native"
6
+ import {Platform, Pressable, View} from "react-native"
7
7
  import PropTypes from "prop-types"
8
8
  import propTypesExact from "prop-types-exact"
9
9
  import {shapeComponent} from "set-state-compare/src/shape-component"
10
10
  import SortLink from "../bootstrap/sort-link"
11
+ import Text from "../utils/text"
11
12
  import useEventListener from "../use-event-listener.mjs"
12
13
  import Widths from "./widths"
13
14
 
@@ -1,4 +1,4 @@
1
- import {Text, View} from "react-native"
1
+ import {View} from "react-native"
2
2
  import BaseComponent from "../base-component"
3
3
  import classNames from "classnames"
4
4
  import Column from "./components/column"
@@ -8,6 +8,7 @@ import PropTypes from "prop-types"
8
8
  import propTypesExact from "prop-types-exact"
9
9
  import {memo} from "react"
10
10
  import {shapeComponent} from "set-state-compare/src/shape-component"
11
+ import Text from "../utils/text"
11
12
 
12
13
  export default memo(shapeComponent(class ApiMakerTableModelColumn extends BaseComponent {
13
14
  static propTypes = propTypesExact({
@@ -4,7 +4,8 @@ import PropTypes from "prop-types"
4
4
  import propTypesExact from "prop-types-exact"
5
5
  import {memo, useEffect, useRef} from "react"
6
6
  import {shapeComponent} from "set-state-compare/src/shape-component.js"
7
- import {Text, View} from "react-native"
7
+ import Text from "../../utils/text"
8
+ import {View} from "react-native"
8
9
 
9
10
  export default memo(shapeComponent(class ColumnRow extends BaseComponent {
10
11
  static propTypes = propTypesExact({
@@ -9,7 +9,8 @@ import PropTypes from "prop-types"
9
9
  import propTypesExact from "prop-types-exact"
10
10
  import {renderToString} from "react-dom/server"
11
11
  import {shapeComponent} from "set-state-compare/src/shape-component.js"
12
- import {Pressable, Text} from "react-native"
12
+ import {Pressable} from "react-native"
13
+ import Text from "../../utils/text"
13
14
 
14
15
  export default memo(shapeComponent(class ApiMakerTableSettingsDownloadAction extends BaseComponent {
15
16
  static propTypes = propTypesExact({
@@ -7,7 +7,8 @@ import Modal from "../../modal"
7
7
  import PropTypes from "prop-types"
8
8
  import propTypesExact from "prop-types-exact"
9
9
  import {shapeComponent} from "set-state-compare/src/shape-component.js"
10
- import {Text, View} from "react-native"
10
+ import {View} from "react-native"
11
+ import Text from "../../utils/text"
11
12
  import useI18n from "i18n-on-steroids/src/use-i18n.mjs"
12
13
 
13
14
  export default memo(shapeComponent(class ApiMakerTableSettings extends BaseComponent {
@@ -1,5 +1,5 @@
1
1
  import {digg, digs} from "diggerize"
2
- import {Pressable, StyleSheet, Text, View} from "react-native"
2
+ import {Pressable, StyleSheet, View} from "react-native"
3
3
  import BaseComponent from "../base-component"
4
4
  import Card from "../bootstrap/card"
5
5
  import classNames from "classnames"
@@ -24,6 +24,7 @@ import Select from "../inputs/select"
24
24
  import Settings from "./settings"
25
25
  import {shapeComponent} from "set-state-compare/src/shape-component"
26
26
  import TableSettings from "./table-settings"
27
+ import Text from "../utils/text"
27
28
  import uniqunize from "uniqunize"
28
29
  import useBreakpoint from "../use-breakpoint"
29
30
  import useCollection from "../use-collection"
@@ -1,9 +1,10 @@
1
1
  import BaseComponent from "../base-component"
2
- import {CheckBox, Text, View} from "react-native"
2
+ import {CheckBox, View} from "react-native"
3
3
  import {memo} from "react"
4
4
  import PropTypes from "prop-types"
5
5
  import propTypesExact from "prop-types-exact"
6
6
  import {shapeComponent} from "set-state-compare/src/shape-component.js"
7
+ import Text from "../utils/text"
7
8
 
8
9
  export default memo(shapeComponent(class ApiMakerUtilsCheckbox extends BaseComponent {
9
10
  static defaultProps = {
@@ -0,0 +1,25 @@
1
+ import {createContext, useContext} from "react"
2
+ import memo from "set-state-compare/src/memo"
3
+
4
+ const DefaultStyleContext = createContext({
5
+ Text: {}
6
+ })
7
+
8
+ const useDefaultStyle = () => {
9
+ const defaultStyle = useContext(DefaultStyleContext)
10
+
11
+ return defaultStyle
12
+ }
13
+
14
+ const WithDefaultStyle = memo((props) => {
15
+ const defaultStyle = useContext(DefaultStyleContext)
16
+ const newDefaultStyle = Object.assign({}, defaultStyle, props.style)
17
+
18
+ return (
19
+ <DefaultStyleContext.Provider value={newDefaultStyle}>
20
+ {props.children}
21
+ </DefaultStyleContext.Provider>
22
+ )
23
+ })
24
+
25
+ export {useDefaultStyle, WithDefaultStyle}
@@ -0,0 +1,15 @@
1
+ import memo from "set-state-compare/src/memo"
2
+ import {Text} from "react-native"
3
+ import {useDefaultStyle, WithDefaultStyle} from "./default-style"
4
+
5
+ export default memo((props) => {
6
+ const {style, ...restProps} = props
7
+ const defaultStyle = useDefaultStyle()
8
+ const actualStyle = Object.assign({}, defaultStyle?.Text, style)
9
+
10
+ return (
11
+ <WithDefaultStyle style={actualStyle}>
12
+ <Text style={actualStyle} {...restProps} />
13
+ </WithDefaultStyle>
14
+ )
15
+ })