DalTag / frontend / rules / index.js
index.js
Raw
// Rules for project label.
export const colorRules = (msg) => {
  return [(v) => !!v || msg.colorRequired]
}

export const labelNameRules = (msg) => {
  return [(v) => !!v || msg.labelRequired, (v) => (v && v.length <= 30) || msg.labelLessThan30Chars]
}

// Rules for project member.
export const userNameRules = (msg) => {
  return [
    (v) => !!v || msg.userNameRequired,
    (v) => (v && v.length <= 30) || msg.userNameLessThan30Chars
  ]
}

export const roleRules = (msg) => {
  return [(v) => !!v || msg.roleRequired]
}

// Rules for a project.
export const projectNameRules = (msg) => {
  return [
    (v) => !!v || msg.projectNameRequired,
    (v) => (v && v.length <= 30) || msg.projectNameLessThan30Chars
  ]
}

export const descriptionRules = (msg) => {
  return [
    (v) => !!v || msg.descriptionRequired,
    (v) => (v && v.length <= 100) || msg.descriptionLessThan30Chars
  ]
}

export const projectTypeRules = (msg) => {
  return [(v) => !!v || msg.projectTypeRequired]
}

// Rules for Document.
export const fileFormatRules = (msg) => {
  return [(v) => !!v || msg.fileFormatRequired]
}

export const uploadFileRules = (msg) => {
  return [
    (v) => !!v || msg.fileRequired,
    (v) => !v || v.some((file) => file.size < 100000000) || msg.fileLessThan1MB
  ]
}

export const uploadSingleFileRules = (msg) => {
  return [(v) => !!v || msg.fileRequired, (v) => !v || v.size < 1000000 || msg.fileLessThan1MB]
}

// Rules for user.
export const passwordRules = (msg) => {
  return [
    (v) => !!v || msg.passwordRequired,
    (v) => (v && v.length <= 30) || msg.passwordLessThan30Chars
  ]
}

export const templateNameRules = () => {
  return [(v) => !!v || 'Name is required']
}