forked from AkkomaGang/admin-fe
Update parsing and wrapping editable map values
This commit is contained in:
parent
a710ca9ece
commit
75b6f027a2
1 changed files with 15 additions and 5 deletions
|
@ -93,7 +93,7 @@ export const parseTuples = (tuples, key) => {
|
||||||
return [...acc, { [mascot.tuple[0]]: { ...mascot.tuple[1], id: `f${(~~(Math.random() * 1e8)).toString(16)}` }}]
|
return [...acc, { [mascot.tuple[0]]: { ...mascot.tuple[1], id: `f${(~~(Math.random() * 1e8)).toString(16)}` }}]
|
||||||
}, [])
|
}, [])
|
||||||
} else if (Array.isArray(item.tuple[1]) &&
|
} else if (Array.isArray(item.tuple[1]) &&
|
||||||
(item.tuple[0] === ':groups' || item.tuple[0] === ':replace' || item.tuple[0] === ':retries' || item.tuple[0] === ':headers' || item.tuple[0] === ':params' || item.tuple[0] === ':crontab' || item.tuple[0] === ':match_actor')) {
|
(item.tuple[0] === ':groups' || item.tuple[0] === ':replace' || item.tuple[0] === ':retries' || item.tuple[0] === ':headers' || item.tuple[0] === ':crontab')) {
|
||||||
if (item.tuple[0] === ':crontab') {
|
if (item.tuple[0] === ':crontab') {
|
||||||
accum[item.tuple[0]] = item.tuple[1].reduce((acc, group) => {
|
accum[item.tuple[0]] = item.tuple[1].reduce((acc, group) => {
|
||||||
return [...acc, { [group.tuple[1]]: { value: group.tuple[0], id: `f${(~~(Math.random() * 1e8)).toString(16)}` }}]
|
return [...acc, { [group.tuple[1]]: { value: group.tuple[0], id: `f${(~~(Math.random() * 1e8)).toString(16)}` }}]
|
||||||
|
@ -123,7 +123,13 @@ export const parseTuples = (tuples, key) => {
|
||||||
} else if (item.tuple[0] === ':ip') {
|
} else if (item.tuple[0] === ':ip') {
|
||||||
accum[item.tuple[0]] = item.tuple[1].tuple.join('.')
|
accum[item.tuple[0]] = item.tuple[1].tuple.join('.')
|
||||||
} else if (item.tuple[1] && typeof item.tuple[1] === 'object') {
|
} else if (item.tuple[1] && typeof item.tuple[1] === 'object') {
|
||||||
|
if (item.tuple[0] === ':params' || item.tuple[0] === ':match_actor') {
|
||||||
|
accum[item.tuple[0]] = Object.keys(item.tuple[1]).reduce((acc, key) => {
|
||||||
|
return [...acc, { [key]: { value: item.tuple[1][key], id: `f${(~~(Math.random() * 1e8)).toString(16)}` }}]
|
||||||
|
}, [])
|
||||||
|
} else {
|
||||||
accum[item.tuple[0]] = parseObject(item.tuple[1])
|
accum[item.tuple[0]] = parseObject(item.tuple[1])
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
accum[item.tuple[0]] = item.tuple[1]
|
accum[item.tuple[0]] = item.tuple[1]
|
||||||
}
|
}
|
||||||
|
@ -236,9 +242,7 @@ const wrapValues = (settings, currentState) => {
|
||||||
if (type === 'keyword' ||
|
if (type === 'keyword' ||
|
||||||
(Array.isArray(type) && (
|
(Array.isArray(type) && (
|
||||||
type.includes('keyword') ||
|
type.includes('keyword') ||
|
||||||
(type.includes('tuple') && type.includes('list')) ||
|
(type.includes('tuple') && type.includes('list'))
|
||||||
(type.includes('map') && type.includes('string')) ||
|
|
||||||
type.includes('map') && type.findIndex(el => el.includes('list') && el.includes('string')) !== -1
|
|
||||||
))
|
))
|
||||||
) {
|
) {
|
||||||
return { 'tuple': [setting, wrapValues(value, currentState)] }
|
return { 'tuple': [setting, wrapValues(value, currentState)] }
|
||||||
|
@ -256,6 +260,12 @@ const wrapValues = (settings, currentState) => {
|
||||||
return acc
|
return acc
|
||||||
}, {})
|
}, {})
|
||||||
return { 'tuple': [setting, { ...currentState[setting], ...mapValue }] }
|
return { 'tuple': [setting, { ...currentState[setting], ...mapValue }] }
|
||||||
|
} else if (type.includes('map')) {
|
||||||
|
const mapValue = Object.keys(value).reduce((acc, key) => {
|
||||||
|
acc[key] = value[key][1]
|
||||||
|
return acc
|
||||||
|
}, {})
|
||||||
|
return { 'tuple': [setting, mapValue] }
|
||||||
} else if (setting === ':ip') {
|
} else if (setting === ':ip') {
|
||||||
const ip = value.split('.').map(s => parseInt(s, 10))
|
const ip = value.split('.').map(s => parseInt(s, 10))
|
||||||
return { 'tuple': [setting, { 'tuple': ip }] }
|
return { 'tuple': [setting, { 'tuple': ip }] }
|
||||||
|
|
Loading…
Reference in a new issue