Skip to content

Commit 03099fc

Browse files
Merge pull request #62 from oslabs-beta/john/examples
John/examples
2 parents 346f9b4 + 1f4746c commit 03099fc

File tree

343 files changed

+26678
-26
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

343 files changed

+26678
-26
lines changed

.gitignore

Lines changed: 197 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,199 @@
11
node_modules/
22
dist
3-
coverage/
3+
coverage/
4+
.next/
5+
6+
# Logs
7+
logs
8+
*.log
9+
npm-debug.log*
10+
yarn-debug.log*
11+
yarn-error.log*
12+
13+
# Diagnostic reports (https://nodejs.org/api/report.html)
14+
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
15+
16+
# Runtime data
17+
pids
18+
*.pid
19+
*.seed
20+
*.pid.lock
21+
22+
# Directory for instrumented libs generated by jscoverage/JSCover
23+
lib-cov
24+
25+
# Coverage directory used by tools like istanbul
26+
coverage
27+
*.lcov
28+
29+
# nyc test coverage
30+
.nyc_output
31+
32+
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
33+
.grunt
34+
35+
# Bower dependency directory (https://bower.io/)
36+
bower_components
37+
38+
# node-waf configuration
39+
.lock-wscript
40+
41+
# Compiled binary addons (https://nodejs.org/api/addons.html)
42+
build/Release
43+
44+
# Dependency directories
45+
node_modules/
46+
47+
# Meteor
48+
.meteor/local
49+
50+
# Gyp specific files
51+
gyp-mac-tool
52+
.gyp
53+
54+
# Optional npm cache directory
55+
.npm
56+
57+
# Optional eslint cache
58+
.eslintcache
59+
60+
# Optional stylelint cache
61+
.stylelintcache
62+
63+
# Microbundle
64+
.rpt2_cache/
65+
.rts2_cache_cjs/
66+
.rts2_cache_es/
67+
.rts2_cache_umd/
68+
69+
# Sass
70+
.sass-cache/
71+
72+
# FuseBox cache
73+
.fusebox/
74+
75+
# Optional REPL history
76+
.node_repl_history
77+
78+
# Output of 'npm pack'
79+
*.tgz
80+
81+
# Yarn Integrity file
82+
.yarn-integrity
83+
84+
# dotenv environment variable files
85+
.env
86+
.env.test
87+
.env.production
88+
89+
# Next.js
90+
.next/
91+
out/
92+
93+
# Next.js build output
94+
.next/static/*
95+
!.next/static/images
96+
*.next/static/favicon.ico
97+
.next/static/media/*
98+
99+
# Next.js cache
100+
.next/cache/
101+
102+
# Nuxt.js build output
103+
.nuxt/
104+
dist/
105+
106+
# Gatsby files
107+
.cache/
108+
public/
109+
110+
# Expo
111+
.expo/
112+
.expo-shared/
113+
114+
# VS Code
115+
.vscode/*
116+
!.vscode/settings.json
117+
!.vscode/tasks.json
118+
!.vscode/launch.json
119+
!.vscode/extensions.json
120+
121+
# IntelliJ IDEA
122+
.idea/
123+
124+
# JetBrains Rider
125+
.idea/
126+
127+
# WebStorm
128+
.idea/
129+
130+
# PHPStorm
131+
.idea/
132+
133+
# Android Studio
134+
.idea/
135+
136+
# macOS
137+
*.DS_Store
138+
*.AppleDouble
139+
*.LSOverride
140+
141+
# Thumbnails
142+
._*
143+
144+
# Files that might appear on external disks
145+
.Spotlight-V100
146+
.Trashes
147+
148+
# Compiled Java classes
149+
*.class
150+
151+
# Java JAR files
152+
*.jar
153+
154+
# Java WAR files
155+
*.war
156+
157+
# Java EAR files
158+
*.ear
159+
160+
# NetBeans
161+
nbproject/private/
162+
build/
163+
nbbuild/
164+
dist/
165+
nbdist/
166+
nbactions.xml
167+
nb-configuration.xml
168+
169+
# Maven
170+
target/
171+
172+
# Gradle
173+
.gradle/
174+
build/
175+
176+
# Mobile Tools for Java (J2ME)
177+
.mtj.tmp/
178+
179+
# Package Files
180+
*.swp
181+
*.swo
182+
183+
# Windows image file caches
184+
Thumbs.db
185+
186+
# Folder config file
187+
Desktop.ini
188+
189+
# Recycle Bin used on file shares
190+
$RECYCLE.BIN/
191+
192+
# Windows Installer files
193+
*.cab
194+
*.msi
195+
*.msm
196+
*.msp
197+
198+
# Windows shortcuts
199+
*.lnk

extension/manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"manifest_version": 3,
33
"name": "React Query Rewind",
44
"description": "State Management DevTool for React Query",
5-
"version": "1.0",
5+
"version": "2.1.0",
66
"permissions": ["activeTab", "storage", "scripting"],
77
"host_permissions": ["<all_urls>"],
88
"background": {

extension/src/App.tsx

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,20 @@ function App() {
3636
port.onMessage.addListener(message => {
3737
// console.log('DEVTOOL: Recieved message from background.ts', message);
3838

39-
if (message.type === 'event') {
39+
// By checking data more thoroughly, we can avoid adding data that we don't expect in child components. This is the data we have the least control over.
40+
// Future iteration could use Zod or something a little less manual and be a more prcise
41+
console.log('Recieved event message', message)
42+
if (
43+
message.type === 'event' &&
44+
message.payload &&
45+
typeof message.payload.eventType === 'string' &&
46+
Array.isArray(message.payload.queryKey) &&
47+
typeof message.payload.queryHash === 'string'
48+
) {
4049
setQueryEvents(queryEvents => [...queryEvents, message.payload]);
4150
}
4251

43-
if (message.type === 'tree') {
52+
if (message.type === 'tree' && message?.data) {
4453
// console.log('APP.tsx: Recieved tree data', message);
4554
setTreeData(message.data);
4655
}

extension/src/components/MultiSelect.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ export default function MultiSelect({
2121
const [queryOptions, setQueryOptions] = useState<string[]>([]);
2222

2323
useEffect(() => {
24-
const newQueryOptions = queryEvents.map((event) => event.queryHash);
24+
const newQueryOptions = queryEvents.map((event) => event?.queryHash);
2525
const uniqueQueryOptions = Array.from(new Set(newQueryOptions));
2626
setQueryOptions(uniqueQueryOptions);
2727
// when there are new query options, we need to check with local storage and see if any of them are set

extension/src/functions/createDisplayArray.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,14 @@ const createDisplayArray = (
2121

2222
// filter for events of selected queries
2323
const selectedQueryEvents = queryEvents.filter((queryEvent) =>
24-
selectedQueries.includes(queryEvent.queryHash)
24+
selectedQueries.includes(queryEvent?.queryHash)
2525
);
2626

2727
// traverse queries and update the relevant query data for that event
2828
selectedQueryEvents.forEach((queryEvent) => {
2929
const prevDisplay = [...allDisplays[allDisplays.length - 1]];
3030
const newDisplay = prevDisplay.map((display) => {
31-
if (display.queryKey === queryEvent.queryHash) {
31+
if (display.queryKey === queryEvent?.queryHash) {
3232
return { ...display, queryData: queryEvent.queryData };
3333
}
3434
return display;

extension/src/types.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ export type JsonDiffType = {
6161
// variable types
6262
export type QueryEvent = {
6363
eventType: string;
64-
queryKey: string[];
64+
queryKey: (string | number) [];
6565
queryHash: string;
6666
timestamp: Date;
6767
queryData?: any;

package-lock.json

Lines changed: 99 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)