Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
import { actions } from 'pubsweet-client'
import { get, debounce, omit, mergeWith } from 'lodash'
import { autosaveRequest } from 'pubsweet-component-wizard/src/redux/autosave'
const parseRevision = (values, fragment) => {
const v = omit(values, 'authorForm')
return {
...fragment,
revision: {
...v,
metadata: mergeWith(
{},
fragment.metadata,
v.metadata,
(obj, src) => (src === '' ? obj : src),
),
},
}
}
const _onChange = (values, dispatch, { collection, fragment }) => {
dispatch(autosaveRequest())
dispatch(actions.updateFragment(collection, parseRevision(values, fragment)))
}
export const onChange = debounce(_onChange, 1000, { maxWait: 5000 })
export const onSubmit = (values, dispatch, { fragment, collection }) => {
// dispatch(
// actions.updateFragment(collection, {
// ...fragment,
// revision,
// }),
// )
// console.log('se face surmit', values)
}
export const getInitialValues = fragment => ({
files: get(fragment, 'revision.files', {}),
authors: get(fragment, 'revision.authors', []),
metadata: get(fragment, 'revision.metadata', {
abstract: '',
title: '',
type: '',
}),
responseToReviewers: get(fragment, 'revision.responseToReviewers', {
content: '',
file: null,
}),
})