protected function getPublishAction($record)
    {
        if (!$record || !$record->canPublish()) {
            return null;
        }

        // Build action
        $publishText = _t('SilverStripe\\AssetAdmin\\Controller\\AssetAdmin.PUBLISH_BUTTON', 'Publish');
        /** @var FormAction $action */
        $action = FormAction::create('publish', $publishText)
            ->setIcon('rocket')
            ->setSchemaState([
                'data' => [
                    'isPublished' => $record->isPublished(),
                    'isModified' => $record->isModifiedOnDraft(),
                    'pristineTitle' => _t(__CLASS__ . 'PUBLISHED', 'Published'),
                    'pristineIcon' => 'tick',
                    'dirtyTitle' => _t(__CLASS__ . 'PUBLISH', 'Publish'),
                    'dirtyIcon' => 'rocket',
                    'pristineClass' => 'btn-outline-primary',
                    'dirtyClass' => '',
                ],
            ])
            ->setSchemaData(['data' => ['buttonStyle' => 'primary']]);

        return $action;
    }