+
{action.name.replaceAll("_", " ")}
-
+
{action.description
? action.description
: ""}
@@ -2813,6 +2820,8 @@ const ActionResponse = memo(({ apiResponse, ExampleBody, isLoggedIn, isLoaded })
const [responseTabIndex, setResponseTabIndex] = useState(0)
const [oldResponse, setOldResponse] = useState(apiResponse)
const [highlight, setHighlight] = useState(false)
+ const {themeMode } = useContext(Context)
+ const theme = getTheme(themeMode)
const MIN_HEIGHT = 50
@@ -2934,7 +2943,7 @@ const ActionResponse = memo(({ apiResponse, ExampleBody, isLoggedIn, isLoaded })
style={{
width: '100%',
height: height,
- backgroundColor: '#1a1a1a',
+ backgroundColor: theme.palette.backgroundColor,
display: 'flex',
flexDirection: 'column',
borderTop: '1px solid rgba(255,255,255,0.2)',
@@ -2988,7 +2997,7 @@ const ActionResponse = memo(({ apiResponse, ExampleBody, isLoggedIn, isLoaded })
{
+
+ const {themeMode } = useContext(Context)
+ const theme = getTheme(themeMode)
+
const handleReactJsonClipboard = (copy) => {
const elementName = "copy_element_shuffle";
let copyText = document.getElementById(elementName);
@@ -3036,7 +3049,7 @@ const ResponseTabWrapper = memo(({ apiResponse }) => {
{
return collapseField(jsonField)
}}
@@ -3049,7 +3062,8 @@ const ResponseTabWrapper = memo(({ apiResponse }) => {
)})
const PaddingWrapper = memo(({ isLoggedIn, isLoaded, children }) => {
- const { leftSideBarOpenByClick, windowWidth } = useContext(Context);
+ const { leftSideBarOpenByClick, windowWidth, themeMode } = useContext(Context);
+ const theme = getTheme(themeMode)
return (
{
? windowWidth >= 1920 ? "calc(100% - 630px)" : "calc(100% - 570px)"
: windowWidth >= 1920 ? "calc(100vw - 460px)": "calc(100% - 410px)"
: windowWidth >= 1920 ? "calc(100% - 370px)" : "calc(100% - 320px)",
- backgroundColor: "#1a1a1a",
+ backgroundColor: theme.palette.backgroundColor,
position: "fixed",
bottom: 0,
right: 0,
diff --git a/frontend/src/components/AppAuthTab.jsx b/frontend/src/components/AppAuthTab.jsx
index f5821a1f..643aa8dc 100644
--- a/frontend/src/components/AppAuthTab.jsx
+++ b/frontend/src/components/AppAuthTab.jsx
@@ -13,7 +13,7 @@ import {
} from "@mui/icons-material";
import { useNavigate } from "react-router-dom";
import { toast } from "react-toastify";
-import theme from "../theme.jsx";
+import {getTheme} from "../theme.jsx";
import Markdown from "react-markdown";
import AuthenticationOauth2 from "../components/Oauth2Auth.jsx";
import { isMobile } from "react-device-detect"
@@ -88,7 +88,9 @@ const AppAuthTab = memo((props) => {
const [searchQuery, setSearchQuery] = React.useState("");
const [showAppModal, setShowAppModal] = useState(false)
const [showAuthenticationLoader, setShowAuthenticationLoader] = useState(true)
- const [showAppAuthGroupLoader, setShowAppAuthGroupLoader] = useState(true)
+ const [showAppAuthGroupLoader, setShowAppAuthGroupLoader] = useState(true)
+ const { themeMode, supportEmail, brandColor } = useContext(Context)
+ const theme = getTheme(themeMode, brandColor)
const changeDistribution = (data) => {
//changeDistributed(data, !isDistributed)
editAuthenticationConfig(data.id, "suborg_distribute")
@@ -277,7 +279,7 @@ const AppAuthTab = memo((props) => {
}}
>
-
+
Edit authentication for {selectedAuthentication.app.name.replaceAll("_", " ")} (
{selectedAuthentication.label})
@@ -297,7 +299,7 @@ const AppAuthTab = memo((props) => {
InputProps={{
style: {
height: 50,
- color: "white",
+ color: theme.palette.textColor,
},
}}
color="primary"
@@ -349,7 +351,7 @@ const AppAuthTab = memo((props) => {
InputProps={{
style: {
height: 50,
- color: "white",
+ color: theme.palette.textColor,
},
}}
color="primary"
@@ -568,7 +570,7 @@ const AppAuthTab = memo((props) => {
})
.then((responseJson) => {
if (responseJson.success === false) {
- toast("Failed to create. Please try again, or contact support@shuffler.io")
+ toast(`Failed to create. Please try again, or contact ${supportEmail}`)
} else {
// Close the modal
setAppAuthenticationGroupModalOpen(false)
@@ -660,7 +662,7 @@ const AppAuthTab = memo((props) => {
}}
>
- App Authentication Groups
+ App Authentication Groups
@@ -677,7 +679,7 @@ const AppAuthTab = memo((props) => {
InputProps={{
style: {
height: "50px",
- color: "white",
+ color: theme.palette.textColor,
fontSize: "1em",
},
}}
@@ -853,22 +855,22 @@ const AppAuthTab = memo((props) => {
) : null;
return (
-
+
{appModal}
-
+
-
App Authentication
-
-
+ App Authentication
+
+
Control the authentication options for individual apps.
-
+
Learn more about App Authentication
@@ -877,7 +879,7 @@ const AppAuthTab = memo((props) => {
{isCloud ?
diff --git a/frontend/src/components/AppCreationModal.jsx b/frontend/src/components/AppCreationModal.jsx
index a9f8f598..28dea461 100644
--- a/frontend/src/components/AppCreationModal.jsx
+++ b/frontend/src/components/AppCreationModal.jsx
@@ -42,9 +42,8 @@ const AppCreationModal = ({ open, onClose, theme, globalUrl, isCloud }) => {
const parsedStyle = {
flex: 1,
- padding: 20,
+ padding: "30px 20px 20px",
margin: 12,
- paddingTop: 30,
backgroundColor: hover && !makeFancy ? theme.palette.surfaceColor : "transparent",
cursor: hover ? "pointer" : "default",
textAlign: "center",
@@ -346,23 +345,23 @@ const AppCreationModal = ({ open, onClose, theme, globalUrl, isCloud }) => {
// Common dialog styles
const dialogStyle = {
borderRadius: 2,
- border: "1px solid #494949",
+ border: theme.palette.DialogStyle.border,
minWidth: '500px',
fontFamily: theme?.typography?.fontFamily,
- backgroundColor: "#1A1A1A",
+ backgroundColor: theme.palette.DialogStyle.backgroundColor,
zIndex: 1000,
'& .MuiDialogContent-root': {
- backgroundColor: "#1A1A1A",
+ backgroundColor: theme.palette.DialogStyle.backgroundColor,
padding: '24px',
fontFamily: theme?.typography?.fontFamily,
},
'& .MuiDialogTitle-root': {
- backgroundColor: "#1A1A1A",
+ backgroundColor: theme.palette.DialogStyle.backgroundColor,
padding: '24px',
fontFamily: theme?.typography?.fontFamily,
},
'& .MuiDialogActions-root': {
- backgroundColor: "#1A1A1A",
+ backgroundColor: theme.palette.DialogStyle.backgroundColor,
padding: '16px 24px',
fontFamily: theme?.typography?.fontFamily,
},
@@ -397,7 +396,7 @@ const AppCreationModal = ({ open, onClose, theme, globalUrl, isCloud }) => {
pl: 4,
pr: 3,
}}>
-
+
Create New App
{
onClose()
}}
sx={{
- color: 'rgba(255, 255, 255, 0.7)',
- '&:hover': { bgcolor: 'rgba(255, 255, 255, 0.1)' }
+ color: theme.palette.text.primary,
+ '&:hover': { bgcolor: theme.palette.hoverColor },
}}
>
@@ -477,7 +476,7 @@ const AppCreationModal = ({ open, onClose, theme, globalUrl, isCloud }) => {
px: 4,
}}>
@@ -502,7 +501,7 @@ const AppCreationModal = ({ open, onClose, theme, globalUrl, isCloud }) => {
-
+
Paste in the URI for the OpenAPI or find out
{
py: 1,
'&:hover': {
borderColor: '#FF8544',
+ color: '#FF8544',
bgcolor: 'rgba(255,133,68,0.1)'
},
textTransform: 'none',
@@ -665,7 +665,7 @@ const AppCreationModal = ({ open, onClose, theme, globalUrl, isCloud }) => {
px: 4,
}}>
@@ -681,8 +681,8 @@ const AppCreationModal = ({ open, onClose, theme, globalUrl, isCloud }) => {
setValidation(false)
}}
sx={{
- color: 'rgba(255,255,255,0.7)',
- '&:hover': { bgcolor: 'rgba(255,255,255,0.1)' }
+ color: theme.palette.text.primary,
+ '&:hover': { bgcolor: theme.palette.hoverColor }
}}
>
@@ -690,7 +690,7 @@ const AppCreationModal = ({ open, onClose, theme, globalUrl, isCloud }) => {
{
variant="outlined"
placeholder="API Documentation URL"
sx={{
- bgcolor: theme.palette.platformColor,
+ bgcolor: theme.palette.textFieldStyle.backgroundColor,
'& .MuiOutlinedInput-root': {
height: '40px',
- color: 'white',
+ color: theme.palette.text.primary,
'& fieldset': {
borderWidth: '1px',
borderImage: "linear-gradient(to right, #ff8544 0%, #ec517c 50%, #9c5af2 100%) 1",
@@ -757,7 +757,7 @@ const AppCreationModal = ({ open, onClose, theme, globalUrl, isCloud }) => {
{circularLoader}
{
!validation &&
-
+
This may take multiple minutes based on the size of the documentation.
}
diff --git a/frontend/src/components/AppModal.jsx b/frontend/src/components/AppModal.jsx
index e9364913..4b3b9516 100644
--- a/frontend/src/components/AppModal.jsx
+++ b/frontend/src/components/AppModal.jsx
@@ -1,4 +1,4 @@
-import React, { memo, useCallback, useEffect, useState } from 'react';
+import React, { memo, useCallback, useEffect, useState, useContext } from 'react';
import { useNavigate } from 'react-router';
import {
@@ -25,12 +25,13 @@ import LaunchIcon from '@mui/icons-material/Launch';
import CheckCircleIcon from '@mui/icons-material/CheckCircle';
import { CloudDownloadOutlined, Delete } from '@mui/icons-material';
import { findSpecificApp } from '../components/AppFramework.jsx';
-import theme from "../theme.jsx";
+import {getTheme} from "../theme.jsx";
import YAML from 'yaml';
import { toast } from 'react-toastify';
import { Link } from 'react-router-dom';
import { InstantSearch, connectHits, connectSearchBox } from 'react-instantsearch-dom';
import algoliasearch from "algoliasearch/lite";
+import { Context } from '../context/ContextApi.jsx';
const searchClient = algoliasearch(
"JNSS5CFDZZ",
@@ -51,6 +52,9 @@ const AppModal = ({ open, onClose, app, globalUrl, getApps}) => {
const [deleteModalOpen, setDeleteModalOpen] = useState(false)
const [sharingConfiguration, setSharingConfiguration] = React.useState("you");
const navigate = useNavigate();
+ const {themeMode} = useContext(Context);
+ const theme = getTheme(themeMode);
+
const parseUsecase = (subcase) => {
const srcdata = findSpecificApp(frameworkData, subcase.type)
const dstdata = findSpecificApp(frameworkData, subcase.last)
@@ -516,12 +520,12 @@ const AppModal = ({ open, onClose, app, globalUrl, getApps}) => {
border: "1px solid #494949",
minWidth: '440px',
fontFamily: theme?.typography?.fontFamily,
- backgroundColor: "#212121",
+ backgroundColor: theme?.palette?.DialogStyle?.backgroundColor,
'& .MuiDialogContent-root': {
- backgroundColor: "#212121",
+ backgroundColor: theme.palette.DialogStyle.backgroundColor,
},
'& .MuiDialogTitle-root': {
- backgroundColor: "#212121",
+ backgroundColor: theme.palette.DialogStyle.backgroundColor,
},
'& .MuiTypography-root': {
fontFamily: theme?.typography?.fontFamily,
@@ -553,7 +557,7 @@ const AppModal = ({ open, onClose, app, globalUrl, getApps}) => {
{
>