Skip to content

Commit

Permalink
update: documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
adnan-td committed Nov 23, 2023
1 parent cdc0b5b commit 201738a
Show file tree
Hide file tree
Showing 6 changed files with 52 additions and 21 deletions.
23 changes: 14 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,10 +45,15 @@ You can customise your mouse follower by changing - background color, scale, rad
follower.

```jsx
import { FollowerProvider } from 'react-mouse-follower';
import { MouseFollower } from 'react-mouse-follower';

function App() {
return <FollowerProvider>{/* rest of your components go here */}</FollowerProvider>;
return (
<div>
<MouseFollower />
// rest of the code
</div>
);
}

export default App;
Expand Down Expand Up @@ -168,13 +173,13 @@ export default function MyComponent() {

All functions provided:

| Name | Description |
| ------------------- | ------------------------------------------- |
| addOptionLayer | pushes new options layer on the top |
| removePreviousLayer | removes top most layer |
| clearLayers | clears all previous layers |
| logLayers | logs all layers in the stack on the console |
| topLayer | returns the top most layer |
| Name | Description |
| ------------------- | ----------------------------------- |
| addOptionLayer | pushes new options layer on the top |
| removePreviousLayer | removes top most layer |
| clearLayers | clears all previous layers |
| log | logs all events on the console |
| topLayer | returns the top most layer |

<br>

Expand Down
2 changes: 1 addition & 1 deletion src/component/follower.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { FollowerInitialiserComponent } from './follower_init.js';

export function Follower() {
export function MouseFollower() {
return <FollowerInitialiserComponent />;
}
3 changes: 2 additions & 1 deletion src/hook/control_options.hook.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,14 @@ import useMouseStore from '../store/index.js';

export function useControlOptions() {
const store = useMouseStore((state) => ({
topLayer: state.layers[state.layers.length > 0 ? state.layers.length - 1 : null],
addOptionLayer: state.pushLayer,
removePreviousLayer: state.popLayer,
clearLayers: state.clearLayers,
log: state.log,
}));

return {
// logLayers: logStack,
...store,
};
}
18 changes: 15 additions & 3 deletions src/store/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,20 +5,27 @@ import { MouseSettings } from '../types/index.js';
interface useMouseStoreInterface {
curSettings: MouseSettings;
layers: MouseSettings[];
logging: boolean;

pushLayer: (newLayer: MouseSettings) => void;
popLayer: () => void;
clearLayers: () => void;
log: () => void;
}

const log =
(config: StateCreator<useMouseStoreInterface>) =>
(set: SetState<useMouseStoreInterface>, get: GetState<useMouseStoreInterface>, api: StoreApi<useMouseStoreInterface>) =>
config(
(args) => {
console.log(' applying', args);
set(args);
console.log(' new state', get());
const prev = get();
if (prev.logging) {
console.log(' applying', args);
set(args);
console.log(' new state', get());
} else {
set(args);
}
},
get,
api,
Expand All @@ -28,6 +35,7 @@ const useMouseStore = create<useMouseStoreInterface>(
log((set) => ({
curSettings: {},
layers: [],
logging: false,

pushLayer: (newLayer: MouseSettings) =>
set((state) => {
Expand All @@ -48,6 +56,10 @@ const useMouseStore = create<useMouseStoreInterface>(
set((state) => {
return { layers: [], curSettings: {} };
}),
log: () =>
set((state) => {
return { logging: !state.logging };
}),
})),
);

Expand Down
6 changes: 3 additions & 3 deletions src/stories/FollowerBasic.stories.tsx
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
import React from 'react';
import type { Meta } from '@storybook/react';

import { Follower, UpdateFollower } from '../index';
import { MouseFollower, UpdateFollower } from '../index';
import * as DivStories from './FollowerContainer.stories';

const meta: Meta = {
title: 'Context/FollowerProvider',
component: Follower,
component: MouseFollower,
decorators: [
(Story) => (
<>
<Follower />
<MouseFollower />
<Story />
</>
),
Expand Down
21 changes: 17 additions & 4 deletions src/stories/UpdateFollower.stories.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import React, { useRef, useState } from 'react';
import React, { useEffect, useRef, useState } from 'react';
import type { Meta } from '@storybook/react';

import { Follower, UpdateFollower } from '../index';
import { MouseFollower, UpdateFollower, useControlOptions } from '../index';
import * as DivStories from './FollowerContainer.stories';
import './css/update_follower.css';

Expand All @@ -14,7 +14,7 @@ const meta: Meta = {
decorators: [
(Story) => (
<>
<Follower />
<MouseFollower />
<Story />
</>
),
Expand Down Expand Up @@ -68,8 +68,21 @@ export const CustomPosition: Meta = {
() => {
const containerRef = useRef(null);
const [isHovering, setIsHovering] = useState(false);
const { log } = useControlOptions();
useEffect(() => {
log();
}, []);
return (
<div style={{ height: '100vh', width: '100vw', display: 'flex', justifyContent: 'center', alignItems: 'center' }}>
<div
style={{
height: '100vh',
width: '100vw',
display: 'flex',
justifyContent: 'center',
alignItems: 'center',
cursor: 'pointer',
}}
>
<UpdateFollower
style={{ padding: '30px' }}
mouseOptions={{
Expand Down

0 comments on commit 201738a

Please sign in to comment.