0.0.8 • Published 2 years ago

@mihanizm56/react-final-form-utils v0.0.8

Weekly downloads
157
License
MIT
Repository
github
Last release
2 years ago

@wildberries/notifications

Sollution for notifications, connected with redux

Examples of usage

Installation

npm install @mihanizm56/notifications

Connect to your root reducer

import {notificationsState} from '@wildberries/notifications';

export const rootReducer = {
  notificationsState,
  ...other root reducers
};

Insert the Notifications component into your project

import React, { memo } from "react";
import { Notifications, setModalAction } from "@wildberries/notifications";
import { createPortal } from 'react-dom';
import { uniqueId } from 'lodash-es'

const portalElement = document.getElementById('portal');

class Portal extends React.PureComponent{
  constructor(props) {
    super(props);

    this.containerEl = document.createElement('div');
    this.containerEl.id = `${props.prefix}_${uniqueId('id_')}`;
    portalElement.appendChild(this.containerEl);
  }

  componentWillUnmount() {
    this.containerEl.remove();
  }

  render() {
    return createPortal(this.props.children, this.containerEl);
  }
}

const TestComponent = memo(() => (
    <div className="TestComponent">
    <Portal prefix="notifications">
      <Notifications />
    </Portal>
    </div>
  );
})

Dispatch setModalAction to add notifications modal

SetModalAction params:

  • status - success | error - modal status (required)
  • text - string - modal test (required)
  • additionalPayload - string - payload of additional action if need to call from modal (not required)
  • additionalActionType - any - type of additional action if need to call from modal (not required)
import React from "react";
import { setModalAction } from "@wildberries/notifications";
import { uniqueId } from 'lodash-es'
import { useDispatch } from "react-redux";

function ExampleComponent) {
  const dispatch = useDispatch();

  const setModal = () => {
    dispatch(setModalAction({
      status: 'success',
      text: 'modal text',
      additionalPayload: { foo:'bar' }, 
      additionalActionType: 'SOME_TYPE',
    }))
  }

  return (
    <div className="ExampleComponent">
        <button onClick={setModal}>button</button>
    </div>
  );
}

export default App;
0.1.0-beta.1

2 years ago

0.0.9-beta.1

2 years ago

0.0.8-beta.2

2 years ago

0.0.8

2 years ago

0.0.8-beta.1

2 years ago

0.0.7

2 years ago

0.0.7-beta.15

2 years ago

0.0.7-beta.13

2 years ago

0.0.7-beta.14

2 years ago

0.0.7-beta.11

2 years ago

0.0.7-beta.12

2 years ago

0.0.7-beta.10

2 years ago

0.0.7-beta.8

2 years ago

0.0.7-beta.9

2 years ago

0.0.7-beta.6

2 years ago

0.0.7-beta.7

2 years ago

0.0.7-beta.4

2 years ago

0.0.7-beta.5

2 years ago

0.0.7-beta.2

2 years ago

0.0.7-beta.3

2 years ago

0.0.7-beta.1

2 years ago

0.0.6

3 years ago

0.0.5-beta.4

4 years ago

0.0.5

4 years ago

0.0.5-beta.1

4 years ago

0.0.5-beta.2

4 years ago

0.0.4-beta.2

4 years ago

0.0.4-beta.1

4 years ago

0.0.4

4 years ago

0.0.3

4 years ago

0.0.3-beta.2

4 years ago

0.0.3-beta.1

4 years ago

0.0.2

4 years ago

0.0.1

4 years ago

0.0.1-beta.0

4 years ago