\n\u003C/UCard>\n```\n\n### Description\n\nIf using a UTable component on a background that isn't the default neutral color the bg-color of the thead is visible.\n\n\n\n\n\n_A little bit easier to see with white Background_\n\n\n\n\nMaybe this is a wanted behavior. So if so please ignore and close the issue.\nI know sometimes you want a background color in the headlines. But sometimes you don't want them.\nAnyways if this is a wanted behavior, then maybe this issue will help those who don't want a background color and are looking for a solution.\n\n### Additional context\n\nCould be fixed by adding:\n```vue\n:ui=\"{\n thead: 'bg-unset'\n}\"\n```\nto the `\u003CUTable>` tag\n\n\n\n### Logs\n\n```shell-script\n-\n```",[2877,2880,2883],{"name":2878,"color":2879},"bug","d73a4a",{"name":2881,"color":2882},"v3","49DCB8",{"name":2884,"color":2885},"triage","ffffff",3607,"ui","Background-Color for UTable","2025-03-18T15:08:25Z","https://github.com/nuxt/ui/issues/3607",0.6783679,{"description":2893,"labels":2894,"number":2901,"owner":2868,"repository":2868,"state":2869,"title":2902,"updated_at":2903,"url":2904,"score":2905},"### Describe the feature\n\nI came across a use case that is currently not possible with `useFetch`, as far as I'm aware. I think it might be useful to return the currently pending promise from `useFetch` so that it can be awaited in callbacks.\r\n\r\nLet me illustrate a use case, where it could come in handy:\r\n\r\nImagine we have a page with a list of items that is paginated. We have two ways of fetching new items:\r\n- A pagination component with buttons representing the page numbers.\r\n- A \"fetch more\" button to append new items to the current list.\r\n\r\nWhen changing the page using the pagination component, we want to display a fullscreen loader. When clicking on the \"fetch more\" button, we want to show the loading only on the button itself. That's why a global pending indicator isn't suitable for this use case. (`state === 'pending'`)\r\n\r\nIf `useFetch` were to return its currently pending promise, we could theoretically use it like this:\r\n```vue\r\n\u003Ctemplate>\r\n\u003C!-- ... -->\r\n\u003C!-- the async callback is awaited in the btn component to automatically handle the loading state -->\r\n \u003CMyButton\r\n :on-click=\"handleFetchMore\"\r\n />\r\n\u003C!-- ... -->\r\n\u003C/template>\r\n\r\n\u003Cscript lang=\"ts\" setup>\r\n\r\nconst page = ref\u003Cnumber>(1)\r\n\r\n// temporary name \"promise\" -- maybe this could replace the \"pending\" boolean in Nuxt 4?\r\nconst { data, promise } = useFetch('/api/my-items', {\r\n query: {\r\n page: page\r\n }\r\n})\r\n\r\nasync function handleFetchMore() {\r\n page.value += 1\r\n // would this work? or would nextTick() need to be awaited before it?\r\n await promise.value\r\n}\r\n\r\n// ...\r\n\r\n\u003C/script>\r\n```\r\n\n\n### Additional information\n\n- [X] Would you be willing to help implement this feature?\n- [ ] Could this feature be implemented as a module?\n\n### Final checks\n\n- [X] Read the [contribution guide](https://nuxt.com/docs/community/contribution).\n- [X] Check existing [discussions](https://github.com/nuxt/nuxt/discussions) and [issues](https://github.com/nuxt/nuxt/issues).",[2895,2898],{"name":2896,"color":2897},"enhancement","8DEF37",{"name":2899,"color":2900},"discussion","538de2",26678,"Return the current promise from `useFetch` in a computed ref","2024-06-30T11:04:44Z","https://github.com/nuxt/nuxt/issues/26678",0.68880904,{"description":2907,"labels":2908,"number":2912,"owner":2868,"repository":2868,"state":2869,"title":2913,"updated_at":2914,"url":2915,"score":2916},"### Environment\n\n```\r\n------------------------------\r\n- Operating System: Linux\r\n- Node Version: v18.20.3\r\n- Nuxt Version: 3.12.4\r\n- CLI Version: 3.12.0\r\n- Nitro Version: 2.9.7\r\n- Package Manager: npm@10.2.3\r\n- Builder: -\r\n- User Config: compatibilityDate, devtools\r\n- Runtime Modules: -\r\n- Build Modules: -\r\n------------------------------\r\n```\n\n### Reproduction\n\nhttps://stackblitz.com/edit/nuxt-starter-rt2zig?file=pages%2Findex.vue\r\n\n\n### Describe the bug\n\nOn Page Load `Response` is null. But when changing something in code to trigger client refresh (i provided the console.log to trigger update), Response is given. \r\nIt works on page reload when using the doSuccess with another composable method.\r\n\r\nWhile debugging, it seems like that causes it:\r\n\r\nIn the described behaviour asyncData use `_nuxtOnBeforeMountCbs` to process the initialFetch\r\n\r\nhttps://github.com/nuxt/nuxt/blob/main/packages/nuxt/src/app/composables/asyncData.ts#L372\r\n\r\nBut, what seems to be a bug, the line ([395](https://github.com/nuxt/nuxt/blob/main/packages/nuxt/src/app/composables/asyncData.ts#L395)) resolves in the given case the Promise where it isn´t processed ([359](https://github.com/nuxt/nuxt/blob/main/packages/nuxt/src/app/composables/asyncData.ts#L359)) yet.\r\n\n\n### Additional context\n\n_No response_\n\n### Logs\n\n_No response_",[2909],{"name":2910,"color":2911},"pending triage","E99695",28485,"useFetch returns null used in component when on parent data is loaded via composable useFetch on route watch","2024-08-13T09:19:21Z","https://github.com/nuxt/nuxt/issues/28485",0.69028705,{"description":2918,"labels":2919,"number":2923,"owner":2868,"repository":2868,"state":2924,"title":2925,"updated_at":2926,"url":2927,"score":2928},"Although it can be used, there are warnings. Why? Can't I keep using useFetch?\r\n\r\n\r\n\r\n\r\n```\r\nimport type {UseFetchOptions} from \"#app\";\r\nimport type {Ref} from \"vue\";\r\nimport type {SearchParameters} from \"ofetch\";\r\n\r\nconst request = async \u003CT = any>(url: any, options: any) => {\r\n const config = useRuntimeConfig();\r\n //设置url\r\n options.baseURL=config.public.apiBase\r\n let token = useCookie(\"manageToken\")\r\n let customHeaders: { \"Content-Type\": string, Authorization?: string } = {\"Content-Type\": \"application/json\"}\r\n const res=await useFetch\u003CT>(url, {headers: customHeaders,...options})\r\n if(process.client){\r\n if(res.error&&res.error.value){\r\n ElNotification({\r\n title: '系统错误提示',\r\n message: res.error.value.message,\r\n type: 'error',\r\n appendTo: document.body,\r\n zIndex: 9999\r\n })\r\n }\r\n else if (res.data.value&&(res.data.value as any).Msg) {\r\n if((res.data.value as any).Code===0){\r\n ElNotification({\r\n title: '系统提示',\r\n message: (res.data.value as any).Msg,\r\n type: 'success',\r\n appendTo: document.body,\r\n zIndex: 9999\r\n })\r\n }\r\n else{\r\n ElNotification({\r\n title: '错误提示',\r\n message: (res.data.value as any).Msg,\r\n type: 'error',\r\n appendTo: document.body,\r\n zIndex: 9999\r\n })\r\n }\r\n }\r\n }\r\n\r\n return res\r\n};\r\ntype ResponseType\u003CT = any> = T extends undefined ? CommonResponse\u003Cany> : CommonResponse\u003CT>;\r\n\r\nexport const http = {\r\n get: \u003CT = any>(url: Ref\u003Cstring>|string, query?: SearchParameters, opts?: UseFetchOptions\u003CT>) => {\r\n return request\u003CT>(url, {...opts,...{method: 'GET', query}});\r\n },\r\n post: \u003CT = undefined>(url: Ref\u003Cstring>|string, body?: RequestInit[\"body\"] | Record\u003Cstring, any>, opts?: UseFetchOptions\u003CResponseType\u003CT>>) => {\r\n return request\u003CResponseType\u003CT>>(url, {...opts,...{method: 'POST', body}});\r\n },\r\n put: \u003CT = undefined>(url: Ref\u003Cstring>|string, body?: RequestInit[\"body\"] | Record\u003Cstring, any>, opts?: UseFetchOptions\u003CResponseType\u003CT>>) => {\r\n return request\u003CResponseType\u003CT>>(url, {...opts,...{method: 'PUT', body}});\r\n },\r\n postGetList: (url: Ref\u003Cstring>|string, body?: RequestInit[\"body\"] | Record\u003Cstring, any>, opts?: UseFetchOptions\u003CResponseType\u003CCommonResponseGetList>>) => {\r\n return request\u003CCommonResponseGetList>(url, {...opts,...{method: 'POST', body}});\r\n },\r\n}\r\n\r\n```",[2920],{"name":2921,"color":2922},"needs reproduction","FBCA04",27242,"closed","[useFetch] Component is already mounted, please use $fetch instead. See https://nuxt.com/docs/getting-started/data-fetching","2024-06-27T14:10:07Z","https://github.com/nuxt/nuxt/issues/27242",0.6548351,{"description":2930,"labels":2931,"number":2934,"owner":2868,"repository":2887,"state":2924,"title":2935,"updated_at":2936,"url":2937,"score":2938},"### Environment\n\n------------------------------\n- Operating System: Linux\n- Node Version: v22.14.0\n- Nuxt Version: 3.16.0\n- CLI Version: 3.23.0\n- Nitro Version: 2.11.6\n- Package Manager: npm@10.9.2\n- Builder: -\n- User Config: app, compatibilityDate, sourcemap, devtools, nitro, experimental, runtimeConfig, routeRules, typescript, css, viewport, i18n, icon, hub, devServer, vite, $development, $production, auth, ui, vue, modules\n- Runtime Modules: @nuxtjs/i18n@9.3.1, @nuxt/ui@3.0.0, @pinia/nuxt@0.10.1, nuxt-viewport@2.2.0, @nuxthub/core@0.8.18, nuxt-auth-utils@0.5.16, @nuxt/eslint@1.2.0\n- Build Modules: -\n------------------------------\n\n### Is this bug related to Nuxt or Vue?\n\nNuxt\n\n### Version\n\nv3.0.0\n\n### Reproduction\n\nInstall nuxt ui and i18n module (to switch to current loacale)\n\nin app.vue: \n```vue\ntemplate>\n \u003CUApp \n :toaster=\"{ position: $viewport.isLessThan('md') ? 'bottom-center' : 'top-center' }\"\n :locale=\"locales[locale as 'fr' | 'en']\" class=\"\"\n >\n \u003CNuxtLayout>\n \u003CNuxtPage />\n \u003C/NuxtLayout>\n \u003C/UApp>\n\u003C/template>\n\u003Cscript setup lang=\"ts\">\nimport { fr, en } from '@nuxt/ui/locale';\nconst locales = { fr, en };\nconst { t, locale } = useI18n();\n\u003C/script>\n```\nAnalyze your bundle:\n`npx nuxi analyze`\n\n### Description\n\nAs you can see, unused locales are still included in the bundle, while only Fr and En have been imported\n\n\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell-script\n\n```",[2932,2933],{"name":2878,"color":2879},{"name":2881,"color":2882},3602,"i18n, Unused locales are included in the bundle","2025-03-18T14:19:38Z","https://github.com/nuxt/ui/issues/3602",0.665214,{"labels":2940,"number":2948,"owner":2868,"repository":2868,"state":2924,"title":2949,"updated_at":2950,"url":2951,"score":2952},[2941,2942,2945],{"name":2899,"color":2900},{"name":2943,"color":2944},"3.x","29bc7f",{"name":2946,"color":2947},"app","17512D",11742,"Improve `asyncData` API","2023-01-19T15:42:33Z","https://github.com/nuxt/nuxt/issues/11742",0.6805254,{"description":2954,"labels":2955,"number":2960,"owner":2868,"repository":2887,"state":2924,"title":2961,"updated_at":2962,"url":2963,"score":2964},"### Description\n\nHi, would be great to have a closeAll on the useOverlay. Usefull especially if you have 2+ overlays\n\n### Additional context\n\n_No response_",[2956,2958,2959],{"name":2896,"color":2957},"a2eeef",{"name":2881,"color":2882},{"name":2884,"color":2885},3953,"useOverlay closeAll","2025-04-25T13:04:04Z","https://github.com/nuxt/ui/issues/3953",0.68131053,{"labels":2966,"number":2972,"owner":2868,"repository":2868,"state":2924,"title":2973,"updated_at":2974,"url":2975,"score":2976},[2967,2968,2971],{"name":2896,"color":2897},{"name":2969,"color":2970},"documentation","5319e7",{"name":2943,"color":2944},13386,"`useFetch` type return","2023-01-19T16:54:20Z","https://github.com/nuxt/nuxt/issues/13386",0.6840477,{"labels":2978,"number":2982,"owner":2868,"repository":2868,"state":2924,"title":2983,"updated_at":2984,"url":2985,"score":2986},[2979,2980,2981],{"name":2896,"color":2897},{"name":2899,"color":2900},{"name":2943,"color":2944},14333,"Allow preventing `useFetch`/`useAsyncData` from firing immediately","2023-01-19T17:33:50Z","https://github.com/nuxt/nuxt/issues/14333",0.68552047,["Reactive",2988],{},["Set"],["ShallowReactive",2991],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$fjqVsyklLNTipMP1jCdqzBgBtG0JJ-hgFklbKAW50AYg":-1},"/nuxt/ui/3868"]