firecmsco / firecms

Awesome Firebase/Firestore-based CMS. The missing admin panel for your Firebase project!
https://firecms.co
Other
1.13k stars 185 forks source link

Lack of Explicit Custom Validation on Properties/Fields #573

Closed danieljancar closed 1 month ago

danieljancar commented 10 months ago

Description

Hello everyone, While FireCMS provides the ability to create custom fields by passing a React component to the fieldConfig prop, it lacks explicit documentation or features for adding custom validation logic to these fields. Correct me if im wrong. 😄

Example

Consider a scenario where we have a role field and an age field in the schema. The role field should only accept numbers that are multiples of 3, and the age field should only accept numbers between 18 and 60, inclusive.

role: {
    title: 'Role',
    dataType: 'number',
    validation: {required: true},
    // Hypothetical custom validation
    customValidation: (value) => {
        if (value % 3 !== 0) {
            return "Role number must be a multiple of 3";
        }
        return null;
    },
},
age: {
    title: 'Age',
    dataType: 'number',
    validation: {required: true},
    // Hypothetical custom validation
    customValidation: (value) => {
        if (value < 18 || value > 60) {
            return "Age must be between 18 and 60";
        }
        return null;
    },
},

Suggested Solution

Introduce a customValidation function property to the field definition, allowing developers to specify custom validation logic. This function could return a string to indicate a validation error or null if the value is valid.

Thank you for your feedback.

fgatti675 commented 10 months ago

Hi @danieljancar Thanks for the suggestion, we are keeping this as a feature request

danieljancar commented 7 months ago

Hey @fgatti675, Could I help implementing this feature or is it already worked on? 😄

fgatti675 commented 1 month ago

Hi @danieljancar is this still something you need?

danieljancar commented 1 month ago

Hey @fgatti675, the feature would be a good addition, but I don't need it currently. 👍🏻 Thanks for asking 🙈

fgatti675 commented 1 month ago

Great, closing this for now :)