diff --git a/app/assets/javascripts/repository/components/tree_content.vue b/app/assets/javascripts/repository/components/tree_content.vue index cf1cff9023ef9f01fb290258aab54c05a044034c..c861fb8dd0637fa6ff919820ceb8d124b00ec4fe 100644 --- a/app/assets/javascripts/repository/components/tree_content.vue +++ b/app/assets/javascripts/repository/components/tree_content.vue @@ -1,6 +1,7 @@ <script> import filesQuery from 'shared_queries/repository/files.query.graphql'; import createFlash from '~/flash'; +import glFeatureFlagMixin from '~/vue_shared/mixins/gl_feature_flags_mixin'; import { __ } from '../../locale'; import { TREE_PAGE_SIZE, TREE_INITIAL_FETCH_COUNT, TREE_PAGE_LIMIT } from '../constants'; import getRefMixin from '../mixins/get_ref'; @@ -14,7 +15,7 @@ export default { FileTable, FilePreview, }, - mixins: [getRefMixin], + mixins: [getRefMixin, glFeatureFlagMixin()], apollo: { projectPath: { query: projectPathQuery, @@ -52,7 +53,9 @@ export default { pageSize() { // we want to exponentially increase the page size to reduce the load on the frontend const exponentialSize = (TREE_PAGE_SIZE / TREE_INITIAL_FETCH_COUNT) * (this.fetchCounter + 1); - return exponentialSize < TREE_PAGE_SIZE ? exponentialSize : TREE_PAGE_SIZE; + return exponentialSize < TREE_PAGE_SIZE && this.glFeatures.increasePageSizeExponentially + ? exponentialSize + : TREE_PAGE_SIZE; }, totalEntries() { return Object.values(this.entries).flat().length; diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index 48d943587d4ba57a7d938545f10d418fd7ce7b82..0dbf7d40f87a45e4681f3037e9de41d5325fa829 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -37,6 +37,7 @@ class ProjectsController < Projects::ApplicationController before_action do push_frontend_feature_flag(:refactor_blob_viewer, @project, default_enabled: :yaml) + push_frontend_feature_flag(:increase_page_size_exponentially, @project, default_enabled: :yaml) end layout :determine_layout diff --git a/config/feature_flags/development/increase_page_size_exponentially.yml b/config/feature_flags/development/increase_page_size_exponentially.yml new file mode 100644 index 0000000000000000000000000000000000000000..88f05d1e8509f507e08a787e11a86ffcd02ca724 --- /dev/null +++ b/config/feature_flags/development/increase_page_size_exponentially.yml @@ -0,0 +1,8 @@ +--- +name: increase_page_size_exponentially +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/66174 +rollout_issue_url: +milestone: '14.1' +type: development +group: group::source code +default_enabled: false diff --git a/spec/frontend/repository/components/tree_content_spec.js b/spec/frontend/repository/components/tree_content_spec.js index 96c197765139e4bfab18e33499775eca83e885f5..1d1ec58100fe5196aa2ae7ed8bed20397412c649 100644 --- a/spec/frontend/repository/components/tree_content_spec.js +++ b/spec/frontend/repository/components/tree_content_spec.js @@ -19,6 +19,11 @@ function factory(path, data = () => ({})) { mocks: { $apollo, }, + provide: { + glFeatures: { + increasePageSizeExponentially: true, + }, + }, }); }