diff options
Diffstat (limited to 'app/graphql/types/blob_viewer_type.rb')
-rw-r--r-- | app/graphql/types/blob_viewer_type.rb | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/app/graphql/types/blob_viewer_type.rb b/app/graphql/types/blob_viewer_type.rb new file mode 100644 index 00000000000..8d863c32bc7 --- /dev/null +++ b/app/graphql/types/blob_viewer_type.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +module Types + class BlobViewerType < BaseObject # rubocop:disable Graphql/AuthorizeTypes + graphql_name 'BlobViewer' + description 'Represents how the blob content should be displayed' + + field :type, Types::BlobViewers::TypeEnum, + description: 'Type of blob viewer.', + null: false + + field :load_async, GraphQL::BOOLEAN_TYPE, + description: 'Shows whether the blob content is loaded asynchronously.', + null: false + + field :collapsed, GraphQL::BOOLEAN_TYPE, + description: 'Shows whether the blob should be displayed collapsed.', + method: :collapsed?, + null: false + + field :too_large, GraphQL::BOOLEAN_TYPE, + description: 'Shows whether the blob is too large to be displayed.', + method: :too_large?, + null: false + + field :render_error, GraphQL::STRING_TYPE, + description: 'Error rendering the blob content.', + null: true + + field :file_type, GraphQL::STRING_TYPE, + description: 'Content file type.', + method: :partial_name, + null: false + + field :loading_partial_name, GraphQL::STRING_TYPE, + description: 'Loading partial name.', + null: false + + def collapsed + !!object&.collapsed? + end + + def too_large + !!object&.too_large? + end + end +end |