mirror of
https://github.com/AmruthPillai/Reactive-Resume.git
synced 2025-11-18 02:31:56 +10:00
🚀 release v3.0.0
This commit is contained in:
34
client/store/sagas/sync.ts
Normal file
34
client/store/sagas/sync.ts
Normal file
@ -0,0 +1,34 @@
|
||||
import { Resume } from '@reactive-resume/schema';
|
||||
import debounce from 'lodash/debounce';
|
||||
import { select, takeLatest } from 'redux-saga/effects';
|
||||
|
||||
import { updateResume } from '@/services/resume';
|
||||
|
||||
import {
|
||||
addItem,
|
||||
addSection,
|
||||
deleteItem,
|
||||
deleteSection,
|
||||
duplicateItem,
|
||||
editItem,
|
||||
setResumeState,
|
||||
} from '../resume/resumeSlice';
|
||||
|
||||
const DEBOUNCE_WAIT = 2500;
|
||||
|
||||
const debouncedSync = debounce((resume: Resume) => updateResume(resume), DEBOUNCE_WAIT);
|
||||
|
||||
function* handleSync() {
|
||||
const resume: Resume = yield select((state) => state.resume);
|
||||
|
||||
debouncedSync(resume);
|
||||
}
|
||||
|
||||
function* syncSaga() {
|
||||
yield takeLatest(
|
||||
[setResumeState, addItem, editItem, duplicateItem, deleteItem, addSection, deleteSection],
|
||||
handleSync
|
||||
);
|
||||
}
|
||||
|
||||
export default syncSaga;
|
||||
Reference in New Issue
Block a user