use-up
TypeScript icon, indicating that this package has built-in type declarations

1.1.6 • Public • Published

Use Up

Why ?

🥸 : Bootstrapping a project is unexpectedly very difficult because there are so many choices, too many setups and configs to do before just working on a project...

😩 : "Hell yeah, you're right. Javascript fatigue..."

🥸 : Up React help you to have everything you need to start for creating a webapp as simple as that :

🧐 : "Mmh, interesting..."

🥸 : At the best, you can just use our components or layouts making a breeze for your quick prototyping or web development with everything to start included and UP to date.

🧐 : "Mmh, yes but what if I want to..."

🥸 : Shut ! I know your dev syndrom... At the minimum, you will have a good boilerplate and UP to you to override it when you will feel the need. Thanks to our "convention over configuration philosophy" and S.O.L.I.D principle :-).

😁 : "Ok now I want to start !!!"

Getting started

There is also a Next.js boilerplate available here : https://github.com/uptoolkit/upfront-nextjs

In your React project just make :

yarn add use-up #or npm i use-up --save

REM : for more tools to use => you can check out also up-react https://github.com/uptoolkit/up-react

Then in your main app (likely very soon in your app instanciation), do :

// this will be likely in your main.js or pages/__app.js in Next
import React from 'react'
import ReactDOM from 'react-dom'
import './index.css'
import App from './App'
import {useUp} from 'use-up';

//1. You must instanciate the useUp singleton
useUp({
  debug: true,
  project : {
    name: 'Up Toolkit Demo',
    logo: {
      src: '/img/logo.svg',
    },
    url: '/'
  },
  storeMode: 'reactive', // could be reactive|redux
  api: {
    url: 'https://uptoolkit/demo/api', // Replace with your api endpoint
  },
  translations: {
    en_EN: {
      hello: 'Hello World !',
    },
    fr_FR: {
      hello: 'Bonjour le monde',
    },
  },
  locale: 'en_EN',
  locales: [
    'en_EN', 'fr_FR'
  ],
});

ReactDOM.render(
  <React.StrictMode>
    <App />
  </React.StrictMode>,
  document.getElementById('root')
)

Then in your component you can simply use the useUp() helper :

import {useState} from 'react'
import {useUp} from 'use-up';

function App() {

  const {
    config, // config helper
    api, // api helper
    t, // translation helper
  } = useUp();

  return (
    <div className="App">
      <header className="App-header">
        {config.get('project.name')}
        {t('hello')}
      </header>
    </div>
  )
}

Available variable helpers

Properties Description Link
config Config Helper https://www.npmjs.com/package/js-config-helper
http Axios instance https://axios-http.com/
api Axios instance with your api as baseUrl https://axios-http.com/
i18n I18n Helper https://www.npmjs.com/package/@cherrypulp/i18n
form Form validation helper https://www.npmjs.com/package/js-form-helper
formApi Form validation helper with your Api as baseUrl https://www.npmjs.com/package/js-form-helper
message Message helper from AntDesign Ui https://ant.design/components/message/
notification Notification helper from AntDesign Ui https://ant.design/components/notification/

What if I need to adapt or don't need a components ?

UseUp use a convention over configuration principle but also a S.O.L.I.D design pattern.

It means that you can override everything if you follow the Typed interface conventions.

To override an element in your initialisation config, just do :

useUp({
  override: {
    api: MyCustomApiService,
    message: MyOtherMessagePlugin
  },
  exclude: [
    'notification',
    'i18n'
  ]
});

Digging deeper

You can get full documentation or check our complete example :

Discover the whole ecosystem of Up Toolkit

UseUp is a part of the Up Toolkit ecosystem a set of packages and utilities for change makers.

For more information go to :

How to contribute ?

Everyone can contribute and propose any components or post an issues, make a suggestion :

To dos :

  • [x] Testing using Jest
  • [x] Add Apollo GraphQL Client helper
  • [x] Customising AntDesign style
  • [x] Documenting code
  • [x] Setting up Storybook
  • [x] More typehint and typescript
  • [x] Add more useful components and libs :-)

Any helps wanted !

Support us

Support us on Open Collective or buy us a Tree :

License

MIT

Treeware license

This package is also a Treeware.

If you use it in production, then we kindly ask buy the world a tree to thank us for our work.

By contributing to the Treeware forest you’ll be creating employment for local families and restoring wildlife habitats!

Readme

Keywords

none

Package Sidebar

Install

npm i use-up

Weekly Downloads

2

Version

1.1.6

License

none

Unpacked Size

584 kB

Total Files

20

Last publish

Collaborators

  • danielsum