2023-07-30 00:26:54 +04:00
|
|
|
import slugify from 'slugify'
|
|
|
|
|
|
2022-01-18 09:08:26 +04:00
|
|
|
export const formatJsonString = stringToFormat =>
|
|
|
|
|
stringToFormat.split('\n').map((string, index) => <div key={index}>{`${string}`}<br /></div>) // eslint-disable-line react/no-array-index-key
|
|
|
|
|
|
2023-07-30 00:26:54 +04:00
|
|
|
export const getAlias = (artistes, priorite = null, enhanced = false) => {
|
2026-04-21 19:16:11 +04:00
|
|
|
if (artistes.length === 1 && !enhanced) {
|
|
|
|
|
return artistes[0].alias
|
2022-05-22 00:16:26 +04:00
|
|
|
}
|
|
|
|
|
|
2026-04-21 19:16:11 +04:00
|
|
|
if (artistes.length === 1 && enhanced) {
|
2023-07-30 00:26:54 +04:00
|
|
|
return [{
|
|
|
|
|
type: 'element',
|
2026-04-21 19:16:11 +04:00
|
|
|
value: artistes[0].alias
|
2023-07-30 00:26:54 +04:00
|
|
|
}]
|
|
|
|
|
}
|
|
|
|
|
|
2022-05-22 00:16:26 +04:00
|
|
|
const alias = []
|
|
|
|
|
const splittedPriority = priorite ? priorite.split('-')
|
|
|
|
|
.map(p => Number.parseInt(p, 10)) : null
|
|
|
|
|
|
|
|
|
|
if (splittedPriority) {
|
|
|
|
|
for (const element of splittedPriority) {
|
2026-04-21 19:16:11 +04:00
|
|
|
const foundedArtistes = artistes.find(({id}) => id === element)
|
|
|
|
|
alias.push(foundedArtistes.alias)
|
2022-05-22 00:16:26 +04:00
|
|
|
}
|
|
|
|
|
} else {
|
2026-04-21 19:16:11 +04:00
|
|
|
for (const artiste of artistes) {
|
|
|
|
|
alias.push(artiste.alias)
|
2022-05-22 00:16:26 +04:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2023-07-30 00:26:54 +04:00
|
|
|
if (enhanced) {
|
|
|
|
|
const list = new Intl.ListFormat('fr').formatToParts(alias)
|
|
|
|
|
return list
|
|
|
|
|
}
|
|
|
|
|
|
2022-05-22 00:16:26 +04:00
|
|
|
return new Intl.ListFormat('fr').format(alias)
|
|
|
|
|
}
|
2023-07-30 00:26:54 +04:00
|
|
|
|
|
|
|
|
function separateString(inputString) {
|
|
|
|
|
const regex = /\s*,\s*|\s+et\s+/
|
|
|
|
|
const strings = inputString.split(regex).map(element => element.trim())
|
|
|
|
|
return strings
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export const getAliasObject = inputString => {
|
|
|
|
|
const awtis = separateString(inputString)
|
|
|
|
|
|
|
|
|
|
return awtis.map(alias => ({
|
|
|
|
|
alias,
|
|
|
|
|
slug: slugify(alias, {lower: true, remove: /[*#+~.()'"!:@]/g})
|
|
|
|
|
}))
|
|
|
|
|
}
|