Skip to content
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions apps/roadmap/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,5 +24,5 @@
"typecheck": "tsgo --noEmit"
},
"type": "module",
"version": "1.0.3"
}
"version": "1.0.4"
}
10 changes: 4 additions & 6 deletions apps/roadmap/src/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,12 @@ import "./App.css";
const App: FC = () => {
const [overlayOpen, setOverlayOpen] = useState(false);
const [selectedEntry, setSelectedEntry] = useState<PendoAPIFeature | null>(
undefined,
null,
);
const [brandConfig, setBrandConfig] = useState<unknown>({});
const [roadmap, setRoadmap] = useState<RoadmapFeatures | null>(undefined);
const [roadmap, setRoadmap] = useState<RoadmapFeatures | null>(null);
const [isDark, setIsDark] = useState(false);
const [showLoading, setShowLoading] = useState(false);

useEffect(() => {
const mediaQuery = window.matchMedia("(prefers-color-scheme: dark)");
Expand Down Expand Up @@ -72,14 +73,11 @@ const App: FC = () => {
}));
}, [roadmap]);

// Debounce loading state
const [showLoading, setShowLoading] = useState(false);
useEffect(() => {
if (!roadmap) {
setShowLoading(false);
const timeout = setTimeout(() => setShowLoading(true), 1000);
return () => clearTimeout(timeout);
} else {
setShowLoading(false);
}
}, [roadmap]);

Expand Down
9 changes: 4 additions & 5 deletions apps/roadmap/src/utils/getRoadmap.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import paramsToPendo from "./paramsToPendo";

let roadmapPromise: Promise<RoadmapFeatures | null> | null;
let cachedRoadmap: RoadmapFeatures | null;
let roadmapPromise: Promise<RoadmapFeatures | null> | null = null;
let cachedRoadmap: RoadmapFeatures | null = null;

type RoadmapRequestEvent = MessageEvent<{ value?: string }>;

Expand All @@ -11,7 +11,7 @@ const getRoadmap = (): Promise<RoadmapFeatures | null> => {
console.debug("Returning cached roadmap");
return Promise.resolve(cachedRoadmap);
}
if (roadmapPromise) {
if (roadmapPromise !== null) {
console.debug("Returning existing roadmap promise");
console.log(roadmapPromise);
return roadmapPromise;
Expand All @@ -29,10 +29,9 @@ const getRoadmap = (): Promise<RoadmapFeatures | null> => {
window.removeEventListener("message", handler);
const result = paramsToPendo(event.data.value);
cachedRoadmap = result;
roadmapPromise = undefined;
roadmapPromise = null;
resolve(result);
}
// Ignore unrelated events
};
window.addEventListener("message", handler);
});
Expand Down