SlugComponent() — supabase Function Reference
Architecture documentation for the SlugComponent() function in SlugComponent.tsx from the supabase codebase.
Entity Profile
Dependency Diagram
graph TD c36f59b9_27d7_5e06_4423_b16e1f0fc20d["SlugComponent()"] cd915eed_2b90_8197_56f3_a26507b6ce36["formatSlug()"] c36f59b9_27d7_5e06_4423_b16e1f0fc20d -->|calls| cd915eed_2b90_8197_56f3_a26507b6ce36 style c36f59b9_27d7_5e06_4423_b16e1f0fc20d fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
apps/cms/src/fields/slug/SlugComponent.tsx lines 16–89
export const SlugComponent: React.FC<SlugComponentProps> = ({
field,
fieldToUse,
checkboxFieldPath: checkboxFieldPathFromProps,
path,
readOnly: readOnlyFromProps,
}) => {
const { label } = field
const checkboxFieldPath = path?.includes('.')
? `${path}.${checkboxFieldPathFromProps}`
: checkboxFieldPathFromProps
const { value, setValue } = useField<string>({ path: path || field.name })
const { dispatchFields } = useForm()
// The value of the checkbox
// We're using separate useFormFields to minimise re-renders
const checkboxValue = useFormFields(([fields]) => {
return fields[checkboxFieldPath]?.value as string
})
// The value of the field we're listening to for the slug
const targetFieldValue = useFormFields(([fields]) => {
return fields[fieldToUse]?.value as string
})
useEffect(() => {
if (checkboxValue) {
if (targetFieldValue) {
const formattedSlug = formatSlug(targetFieldValue)
if (value !== formattedSlug) setValue(formattedSlug)
} else {
if (value !== '') setValue('')
}
}
}, [targetFieldValue, checkboxValue, setValue, value])
const handleLock = useCallback(
(e: React.MouseEvent<Element>) => {
e.preventDefault()
dispatchFields({
type: 'UPDATE',
path: checkboxFieldPath,
value: !checkboxValue,
})
},
[checkboxValue, checkboxFieldPath, dispatchFields]
)
const readOnly = readOnlyFromProps || checkboxValue
return (
<div className="field-type slug-field-component">
<div className="label-wrapper">
<FieldLabel htmlFor={`field-${path}`} label={label} />
<Button className="lock-button" buttonStyle="none" onClick={handleLock}>
{checkboxValue ? 'Unlock' : 'Lock'}
</Button>
</div>
<TextInput
value={value}
onChange={setValue}
path={path || field.name}
readOnly={Boolean(readOnly)}
/>
</div>
)
}
Domain
Subdomains
Calls
Source
Frequently Asked Questions
What does SlugComponent() do?
SlugComponent() is a function in the supabase codebase.
What does SlugComponent() call?
SlugComponent() calls 1 function(s): formatSlug.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free