React Service Provider
npm install react-service-provider```
npm i --save react-service-provider
This package has been created for inplementing IOC Design Pattern & Services.
Example:
``
const SomeComponent = observer((props) => {
const secondService = React.useContext(SecondService);
return (
{secondService.counter}
);
});
`
export const App = () => {
const [ServiceProvider, ServiceProviderHook] = useServiceProvider(
FirstService,
SecondService,
);
return (
);
};
`
``
export const FirstService = createService(
() => {
const service = useLocalStore(() => ({
counter: 0,
get isCounterBigger5() {
return service.counter > 5;
},
limitCounter: () => {
if (service.isCounterBigger5) {
service.counter = 0;
}
},
}));
return service;
}
);
```
export const SecondService = createService(
() => {
const service = useLocalStore(() => ({
firstService: null as FirstService,
get counter() {
return service.firstService.counter > 5;
},
increaseCounter: () => {
service.firstService.counter++;
service.firstService.limitCounter();
},
}));
return service;
},
(service) => {
service.firstService = React.useContext(FirstService);
}
);