1.2.0 • Published 1 year ago

@jitera/jitera-rn-ui-library v1.2.0

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

Jitera React Native UI public library

A public React Native library providing UI components and making it simple for you to build mobile application

Dependences

require

"color": "^3.1.3"
"react-native-size-matters": "^0.4.0",

// optional

"react-native-fast-image": "^8.3.4",
"react-native-safe-area-context": "^3.1.9",

dev

"@types/color": "^3.0.1",

Installing

Wrapped you app with "ThemeProvider"

const theme = {
  colors: {
    primary: '#010D36',
  },
  Button: {
    raised: true,
    buttonStyle: {
      height: 56,
    },
  },
};

<ThemeProvider safeArea theme={theme}>
  ...
</ThemeProvider>;

the config of theme object will overwrite the the default config. it also supported to change default props of atoms components. EX:

Button: {
  raised: true,
  buttonStyle: {
    height: 56
  }
},

By default all button will raised ( have shadow ). and height: 56 . But you can overwrite it whenever you want

<Button raised={false} buttonStyle={{ height: 38 }}>

Feature

Provide default components:

  • Button: supportted types: clear, outline, solid, linear-gradiend, loading, suffix, preffix, etc
  • Image: placeholder, fast-image, etc
  • Input: label, error message, etc
  • Text
  • Page: Default wrapper for screen, support safe area and default background
  • View
  • Header: Support default backbutton, title, etc

Provide default widgets:

  • CommonLoading: full page loading, accessable anywhere
  • Modal: Full page modal, accessable anywhere
  • Toast: Toast, accessable anywhere

Usage

Theme variable:

import { withTheme } from '@jitera/jitera-rn-ui-library';

withTheme(YourComponent);

const YourComponent = ({
  theme, // provided current theme
  ...props
}) => {
  // By default theme will provide you usefull variable
  // + theme.fonts: for custom font family and font weight { regular, thin, light, black, medium, bold }
  // + theme.colors: all color { rprimary, secondary, background, header, success, error, ... }
  // + theme.spacing: { SPACING_1, SPACING_10, SPACING_12, SPACING_50, ... }
  // + theme.fontSizes: { FONT_10, FONT_12, FONT_24, FONT_40, ... }
  // + theme.safeArea: Usefull when calculator the screen ignore nock, statusbar, etc { top, bottom, left, right }
};

Default components:

import { Button, View, Image, View, Text, Page } from '@jitera/jitera-rn-ui-library';

Default widgets:

  • CommonLoading
import { CommonLoading } from '@jitera/jitera-rn-ui-library';

const action = async () => {
  try {
    CommonLoading.show();
    // Wait some async job
    await fetchData();
    CommonLoading.hide();
  } catch (err) {
    CommonLoading.hide();
  }
};
  • Modal
import { Modal } from '@jitera/jitera-rn-ui-library'

const onPressButton = async () => {
    Modal.show(
        <YourComponent
            onSuccess={() => {
                Modal.hide()
            }}
            onCancel={() => {
                Modal.hide()
            }}
        >
    )
}
  • Toast
import { Toast } from '@jitera/jitera-rn-ui-library';

const onPressButton = async () => {
  Toast.show(' -- Your Message -- ', { type: 'error' });
};