class Lookbook::Preview

def all

def all
  if @previews.nil? && @preview_objects.present?
    previews = @preview_objects.map do |code_object|
      klass = code_object.path.constantize
      new(klass, code_object) if klass.ancestors.include?(ViewComponent::Preview)
    rescue => exception
      Lookbook.logger.error Lookbook::Error.new(exception)
      nil
    end.compact
    sorted_previews = previews.compact.sort_by { |preview| [preview.position, preview.label] }
    @previews = PreviewCollection.new(sorted_previews)
    @previews
  elsif !@preview_objects.present?
    PreviewCollection.new([])
  else
    @previews
  end
end