diff --git a/src/VersionedGridFieldDetailForm.php b/src/VersionedGridFieldDetailForm.php index 8a9ef468..fa593217 100644 --- a/src/VersionedGridFieldDetailForm.php +++ b/src/VersionedGridFieldDetailForm.php @@ -20,12 +20,21 @@ class VersionedGridFieldDetailForm extends Extension */ public function updateItemRequestClass(&$class, $gridField, $record, $requestHandler) { - // Conditionally use a versioned item handler + // Conditionally use a versioned item handler if it doesn't already have one. if ($record && $record->has_extension(Versioned::class) && $record->config()->get('versioned_gridfield_extensions') ) { - $class = VersionedGridFieldItemRequest::class; + // don't override custom classes if they already subclass this + if (!$class) { + $class = VersionedGridFieldItemRequest::class; + + return; + } + + if (!is_subclass_of($class, VersionedGridFieldItemRequest::class)) { + $class = VersionedGridFieldItemRequest::class; + } } } }