diff --git a/backend/ee/danswer/server/enterprise_settings/api.py b/backend/ee/danswer/server/enterprise_settings/api.py index 9f3249abae04..ec26ff1e1cf9 100644 --- a/backend/ee/danswer/server/enterprise_settings/api.py +++ b/backend/ee/danswer/server/enterprise_settings/api.py @@ -1,8 +1,8 @@ from fastapi import APIRouter from fastapi import Depends from fastapi import HTTPException +from fastapi import Response from fastapi import UploadFile -from fastapi.responses import StreamingResponse from sqlalchemy.orm import Session from danswer.auth.users import current_admin_user @@ -43,7 +43,7 @@ def upload_logo( db_session: Session = Depends(get_session), _: User | None = Depends(current_admin_user), ) -> None: - if ( + if not file.filename or ( not file.filename.endswith(".png") and not file.filename.endswith(".jpg") and not file.filename.endswith(".jpeg") @@ -59,7 +59,9 @@ def upload_logo( @basic_router.get("/logo") -def fetch_logo(db_session: Session = Depends(get_session)) -> StreamingResponse: +def fetch_logo(db_session: Session = Depends(get_session)) -> Response: file_store = get_default_file_store(db_session) file_io = file_store.read_file(_LOGO_FILENAME, mode="b") - return StreamingResponse(content=file_io, media_type="image/jpeg") + # NOTE: specifying "image/jpeg" here, but it still works for pngs + # TODO: do this properly + return Response(content=file_io.read(), media_type="image/jpeg") diff --git a/web/src/app/admin/settings/interfaces.ts b/web/src/app/admin/settings/interfaces.ts index a4f7c4d5e91f..3e997a56267e 100644 --- a/web/src/app/admin/settings/interfaces.ts +++ b/web/src/app/admin/settings/interfaces.ts @@ -4,10 +4,6 @@ export interface Settings { default_page: "search" | "chat"; } -export interface ColorConfig { - primary: string | null; -} - export interface EnterpriseSettings { application_name: string | null; use_custom_logo: boolean; @@ -16,7 +12,6 @@ export interface EnterpriseSettings { custom_header_content: string | null; custom_popup_header: string | null; custom_popup_content: string | null; - color_config: ColorConfig | null; } export interface CombinedSettings { diff --git a/web/src/app/ee/admin/whitelabeling/WhitelabelingForm.tsx b/web/src/app/ee/admin/whitelabeling/WhitelabelingForm.tsx index 886b701557ac..dab202ff069e 100644 --- a/web/src/app/ee/admin/whitelabeling/WhitelabelingForm.tsx +++ b/web/src/app/ee/admin/whitelabeling/WhitelabelingForm.tsx @@ -50,14 +50,10 @@ export function WhitelabelingForm() { initialValues={{ application_name: enterpriseSettings?.application_name || null, use_custom_logo: enterpriseSettings?.use_custom_logo || false, - color_config: enterpriseSettings?.color_config || null, }} validationSchema={Yup.object().shape({ application_name: Yup.string(), use_custom_logo: Yup.boolean().required(), - color_config: Yup.object().shape({ - primary: Yup.string(), - }), })} onSubmit={async (values, formikHelpers) => { formikHelpers.setSubmitting(true); @@ -67,6 +63,7 @@ export function WhitelabelingForm() { const formData = new FormData(); formData.append("file", selectedFile); + setSelectedFile(null); const response = await fetch( "/api/admin/enterprise-settings/logo", { @@ -80,7 +77,6 @@ export function WhitelabelingForm() { formikHelpers.setSubmitting(false); return; } - setSelectedFile(null); } formikHelpers.setValues(values); @@ -103,7 +99,7 @@ export function WhitelabelingForm() {
+ Powered by Danswer +
+