diff --git a/apps/frontend/src/composables/featureFlags.ts b/apps/frontend/src/composables/featureFlags.ts
index 69195a8982..1eb95d4ab6 100644
--- a/apps/frontend/src/composables/featureFlags.ts
+++ b/apps/frontend/src/composables/featureFlags.ts
@@ -32,6 +32,7 @@ export const DEFAULT_FEATURE_FLAGS = validateValues({
projectBackground: false,
searchBackground: false,
advancedDebugInfo: false,
+ FilesRefreshButton: false,
showProjectPageDownloadModalServersPromo: false,
showProjectPageCreateServersTooltip: true,
showProjectPageQuickServerButton: false,
diff --git a/apps/frontend/src/pages/hosting/manage/[id]/files.vue b/apps/frontend/src/pages/hosting/manage/[id]/files.vue
index 83b7fff595..82a33ae15f 100644
--- a/apps/frontend/src/pages/hosting/manage/[id]/files.vue
+++ b/apps/frontend/src/pages/hosting/manage/[id]/files.vue
@@ -10,5 +10,8 @@ useHead({
-
+
diff --git a/packages/ui/src/components/servers/files/FileNavbar.vue b/packages/ui/src/components/servers/files/FileNavbar.vue
index dbfcbd52df..9ba0bc11dc 100644
--- a/packages/ui/src/components/servers/files/FileNavbar.vue
+++ b/packages/ui/src/components/servers/files/FileNavbar.vue
@@ -80,6 +80,17 @@
@update:model-value="$emit('update:searchQuery', $event)"
/>
+
+
+
+
()
@@ -190,6 +202,7 @@ defineEmits<{
upload: []
uploadZip: []
unzipFromUrl: [cf: boolean]
+ refresh: []
save: []
saveAs: []
saveRestart: []
diff --git a/packages/ui/src/pages/hosting/manage/files.vue b/packages/ui/src/pages/hosting/manage/files.vue
index 941c197e1e..996d0c9a9d 100644
--- a/packages/ui/src/pages/hosting/manage/files.vue
+++ b/packages/ui/src/pages/hosting/manage/files.vue
@@ -30,6 +30,7 @@
:editing-file-path="editingFile?.path"
:is-editing-image="fileEditorRef?.isEditingImage"
:search-query="searchQuery"
+ :show-refresh-button="showRefreshButton"
:base-id="baseId"
@navigate="navigateToSegment"
@navigate-home="() => navigateToSegment(-1)"
@@ -39,6 +40,7 @@
@upload="initiateFileUpload"
@upload-zip="() => {}"
@unzip-from-url="showUnzipFromUrlModal"
+ @refresh="refreshList"
@save="() => fileEditorRef?.saveFileContent(true)"
@save-as="() => fileEditorRef?.saveFileContent(false)"
@save-restart="() => fileEditorRef?.saveAndRestart()"
@@ -303,6 +305,7 @@ import {
defineProps<{
showDebugInfo?: boolean
+ showRefreshButton?: boolean
}>()
const notifications = injectNotificationManager()