fix minor ui issue

This commit is contained in:
lalitdeore12@gmail.com
2025-10-28 19:45:35 +05:30
parent f50ba78a56
commit b99565dc90
5 changed files with 48 additions and 5 deletions
+28
View File
@@ -4956,6 +4956,17 @@ func handleCloudSetup(resp http.ResponseWriter, request *http.Request) {
resp.Write(b) resp.Write(b)
} else { } else {
// Delete cache for the sync features
cacheKey := fmt.Sprintf("org_sync_features_%s", org.Id)
shuffle.DeleteCache(ctx, cacheKey)
subscriptionCacheKey := fmt.Sprintf("org_subscriptions_%s", org.Id)
shuffle.DeleteCache(ctx, subscriptionCacheKey)
licenseCacheKey := fmt.Sprintf("org_licensed_%s", org.Id)
shuffle.DeleteCache(ctx, licenseCacheKey)
resp.WriteHeader(200) resp.WriteHeader(200)
resp.Write([]byte(fmt.Sprintf(`{"success": true, "reason": "Successfully disabled cloud sync for org."}`))) resp.Write([]byte(fmt.Sprintf(`{"success": true, "reason": "Successfully disabled cloud sync for org."}`)))
} }
@@ -5047,6 +5058,23 @@ func handleCloudSetup(resp http.ResponseWriter, request *http.Request) {
shuffle.SetCache(ctx, cacheKey, featuresBytes, 1800) shuffle.SetCache(ctx, cacheKey, featuresBytes, 1800)
} }
subscriptionCacheKey := fmt.Sprintf("org_subscriptions_%s", org.Id)
subscriptionsBytes, err := json.Marshal(responseData.Subscriptions)
if err != nil {
log.Printf("[ERROR] Failed to marshal Subscriptions for cache: %s", err)
} else {
shuffle.SetCache(ctx, subscriptionCacheKey, subscriptionsBytes, 1800)
}
licenseCacheKey := fmt.Sprintf("org_licensed_%s", org.Id)
licensedBytes, err := json.Marshal(responseData.Licensed)
if err != nil {
log.Printf("[ERROR] Failed to marshal Licensed for cache: %s", err)
} else {
shuffle.SetCache(ctx, licenseCacheKey, licensedBytes, 1800)
}
org.SyncConfig = shuffle.SyncConfig{ org.SyncConfig = shuffle.SyncConfig{
Apikey: responseData.SessionKey, Apikey: responseData.SessionKey,
Interval: responseData.IntervalSeconds, Interval: responseData.IntervalSeconds,
+3 -1
View File
@@ -49,7 +49,7 @@ const CloudSyncTab = (props) => {
const itemColor = "white"; const itemColor = "white";
const isCloud = window?.location?.host === "localhost:3002" || window?.location?.host === "shuffler.io"; const isCloud = window?.location?.host === "localhost:3002" || window?.location?.host === "shuffler.io";
const { themeMode, brandColor } = useContext(Context); const { themeMode, brandColor, setUpdateOrg } = useContext(Context);
const theme = getTheme(themeMode, brandColor); const theme = getTheme(themeMode, brandColor);
useEffect(() => { getSettings(); }, []); useEffect(() => { getSettings(); }, []);
@@ -457,6 +457,8 @@ const CloudSyncTab = (props) => {
setLoading(false); setLoading(false);
if (response.status === 200) { if (response.status === 200) {
console.log("Cloud sync success?"); console.log("Cloud sync success?");
handleGetOrg(userdata.active_org.id);
setUpdateOrg(true);
} else { } else {
console.log("Cloud sync fail?"); console.log("Cloud sync fail?");
} }
+3 -2
View File
@@ -64,7 +64,7 @@ const ExpandMoreAndLessIcon = "/icons/expandMoreIcon.svg";
const LeftSideBar = ({ userdata, serverside, globalUrl, notifications, }) => { const LeftSideBar = ({ userdata, serverside, globalUrl, notifications, }) => {
const navigate = useNavigate(); const navigate = useNavigate();
const {setLeftSideBarOpenByClick, leftSideBarOpenByClick, setSearchBarModalOpen, searchBarModalOpen, logoutUrl, themeMode, handleThemeChange, isDocSearchModalOpen, setIsDocSearchModalOpen, supportEmail} = useContext(Context); const {setLeftSideBarOpenByClick, leftSideBarOpenByClick, updateOrg, setUpdateOrg, setSearchBarModalOpen, searchBarModalOpen, logoutUrl, themeMode, handleThemeChange, isDocSearchModalOpen, setIsDocSearchModalOpen, supportEmail} = useContext(Context);
const [expandLeftNav, setExpandLeftNav] = useState(false); const [expandLeftNav, setExpandLeftNav] = useState(false);
const [activeOrgName, setActiveOrgName] = useState( const [activeOrgName, setActiveOrgName] = useState(
userdata?.active_org?.name || "Select Organziation" userdata?.active_org?.name || "Select Organziation"
@@ -956,6 +956,7 @@ const LeftSideBar = ({ userdata, serverside, globalUrl, notifications, }) => {
.then((org) => { .then((org) => {
if (!fetched && org) { if (!fetched && org) {
setActiveOrgData(org); setActiveOrgData(org);
setUpdateOrg(false);
if (!isCloud) { if (!isCloud) {
if (org?.cloud_sync && org?.subscriptions[0]?.name?.toLowerCase().includes("enterprise") && org?.subscriptions[0]?.active) { if (org?.cloud_sync && org?.subscriptions[0]?.name?.toLowerCase().includes("enterprise") && org?.subscriptions[0]?.active) {
setIsProdStatusOn(true); setIsProdStatusOn(true);
@@ -972,7 +973,7 @@ const LeftSideBar = ({ userdata, serverside, globalUrl, notifications, }) => {
return () => { return () => {
fetched = true; fetched = true;
}; };
}, [userdata?.active_org?.id, globalUrl]); }, [userdata?.active_org?.id, globalUrl, updateOrg]);
return ( return (
<div <div
+3
View File
@@ -15,6 +15,7 @@ export const AppContext = (props) => {
const [windowWidth, setWindowWidth] = useState(serverside === true ? 100 : window.innerWidth); const [windowWidth, setWindowWidth] = useState(serverside === true ? 100 : window.innerWidth);
const [brandColor, setBrandColor] = useState(() => localStorage.getItem("brandColor") || "#ff8544"); const [brandColor, setBrandColor] = useState(() => localStorage.getItem("brandColor") || "#ff8544");
const [brandName, setBrandName] = useState(()=> localStorage.getItem("brandName") || "Shuffle"); const [brandName, setBrandName] = useState(()=> localStorage.getItem("brandName") || "Shuffle");
const [updateOrg, setUpdateOrg] = useState(false);
const [themeMode, setThemeMode] = useState( const [themeMode, setThemeMode] = useState(
() => localStorage.getItem("theme") || "dark" () => localStorage.getItem("theme") || "dark"
@@ -117,6 +118,8 @@ export const AppContext = (props) => {
setBrandColor, setBrandColor,
brandName, brandName,
setBrandName, setBrandName,
updateOrg,
setUpdateOrg,
}}> }}>
{props.children} {props.children}
</Context.Provider> </Context.Provider>
+11 -2
View File
@@ -5,14 +5,14 @@ import { Context } from '../context/ContextApi.jsx';
const Admin2 = (props) => { const Admin2 = (props) => {
// Destructure props if needed // Destructure props if needed
const { userdata, globalUrl, serverside, checkLogin, notifications, setNotifications, stripeKey, isLoaded, isLoggedIn} = props; const { userdata, globalUrl, serverside, checkLogin, notifications, setNotifications, stripeKey, isLoaded, } = props;
const [selectedTab, setSelectedTab] = useState('editdetails'); const [selectedTab, setSelectedTab] = useState('editdetails');
const [selectedStatus, setSelectedStatus] = React.useState([]); const [selectedStatus, setSelectedStatus] = React.useState([]);
const [selectedOrganization, setSelectedOrganization] = useState({}); const [selectedOrganization, setSelectedOrganization] = useState({});
const [organizationFeatures, setOrganizationFeatures] = useState({}); const [organizationFeatures, setOrganizationFeatures] = useState({});
const [orgRequest, setOrgRequest] = React.useState(true); const [orgRequest, setOrgRequest] = React.useState(true);
const [isOrgLoaded, setIsOrgLoaded] = React.useState(false); const [isOrgLoaded, setIsOrgLoaded] = React.useState(false);
const {brandName} = useContext(Context) const {brandName, updateOrg, setUpdateOrg} = useContext(Context)
const isCloud = window.location.host === "localhost:3002" || window.location.host === "shuffler.io"; const isCloud = window.location.host === "localhost:3002" || window.location.host === "shuffler.io";
if (document !== undefined) { if (document !== undefined) {
@@ -47,6 +47,8 @@ const Admin2 = (props) => {
window.location.href = "/workflows"; window.location.href = "/workflows";
}, 3000); }, 3000);
} else { } else {
setUpdateOrg(false);
if ( if (
responseJson.sync_features === undefined || responseJson.sync_features === undefined ||
responseJson.sync_features === null responseJson.sync_features === null
@@ -163,6 +165,13 @@ const Admin2 = (props) => {
}); });
}; };
useEffect(() => {
if (updateOrg && userdata?.active_org?.id !== undefined && userdata?.active_org?.id !== null && userdata?.active_org?.id.length > 0) {
handleGetOrg(userdata.active_org.id);
setUpdateOrg(false);
}
}, [updateOrg]);
useEffect(() => { useEffect(() => {
const urlSearchParams = new URLSearchParams(window.location.search); const urlSearchParams = new URLSearchParams(window.location.search);