Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
}
if (avatar && validateAvatar(avatar) && avatar !== user.avatar) {
nextAvatar = getValidAvatar(avatar)
}
if (nextName || nextColor || nextAvatar) {
const nextProfile = cleanObject({ name: nextName, color: nextColor, avatar: nextAvatar })
dispatch(updateUser({ userId, ...nextProfile }))
}
if (nextName) {
dispatch(multi_userNameChanged(userId, user.name))
}
}
export const server_updateUser = rpc('updateUser', RpcRealm.Server, requestUpdateUser)
'requestDeleteMedia',
RpcRealm.Server,
requestDeleteMedia
)
const requestMoveToTop = (mediaId: string): RpcThunk => (dispatch, getState, context) => {
if (!hasPlaybackPermissions(getState(), context.client)) return
dispatch(moveToTop(mediaId))
}
export const server_requestMoveToTop = rpc('requestMoveToTop', RpcRealm.Server, requestMoveToTop)
const requestToggleQueueLock = (): RpcThunk => (dispatch, getState, context) => {
if (!hasPlaybackPermissions(getState(), context.client)) return
dispatch(lockQueue())
}
export const server_requestToggleQueueLock = rpc(
'requestToggleQueueLock',
RpcRealm.Server,
requestToggleQueueLock
)
break
}
}
export const server_requestPlayPause = rpc('requestPlayPause', RpcRealm.Server, requestPlayPause)
const requestNextMedia = (): RpcThunk => (dispatch, getState, context) => {
if (!hasPlaybackPermissions(getState(), context.client)) return
dispatch(nextMedia())
}
export const server_requestNextMedia = rpc('requestNextMedia', RpcRealm.Server, requestNextMedia)
const requestRepeatMedia = (): RpcThunk => (dispatch, getState, context) => {
if (!hasPlaybackPermissions(getState(), context.client)) return
dispatch(repeatMedia())
}
export const server_requestRepeatMedia = rpc(
'requestRepeatMedia',
RpcRealm.Server,
requestRepeatMedia
)
const requestSeek = (time: number): RpcThunk => (dispatch, getState, context) => {
if (!hasPlaybackPermissions(getState(), context.client)) return
const state = getState()
const media = getCurrentMedia(state)
if (!media || !media.duration) return
time = clamp(time, 0, media.duration)
if (isNaN(time)) return
dispatch(seekMedia(time))
RpcRealm.Server,
requestSeekRelative
)
const requestDeleteMedia = (mediaId: string): RpcThunk => (dispatch, getState, context) => {
if (!hasPlaybackPermissions(getState(), context.client)) return
const currentId = getCurrentMediaId(getState())
if (currentId === mediaId) {
dispatch(nextMedia(true))
return
}
dispatch(deleteMedia(mediaId))
}
export const server_requestDeleteMedia = rpc(
'requestDeleteMedia',
RpcRealm.Server,
requestDeleteMedia
)
const requestMoveToTop = (mediaId: string): RpcThunk => (dispatch, getState, context) => {
if (!hasPlaybackPermissions(getState(), context.client)) return
dispatch(moveToTop(mediaId))
}
export const server_requestMoveToTop = rpc('requestMoveToTop', RpcRealm.Server, requestMoveToTop)
const requestToggleQueueLock = (): RpcThunk => (dispatch, getState, context) => {
if (!hasPlaybackPermissions(getState(), context.client)) return
dispatch(lockQueue())
}
export const server_requestToggleQueueLock = rpc(