From 4d45b2e0a595261e01fdf6fb5c1af373ac28ad0b Mon Sep 17 00:00:00 2001 From: Mike Goodfellow Date: Wed, 10 Jan 2024 13:47:22 +0000 Subject: [PATCH 01/12] Route change error doesnt have cfg when cancelled via alert cancelled route, also always cancel nprogress regardless of shallow --- package-lock.json | 4 ++-- package.json | 7 ++++--- src/index.tsx | 30 ++++++++---------------------- 3 files changed, 14 insertions(+), 27 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5e20d0b..ea6f0a1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,11 +1,11 @@ { - "name": "@sqrlplanner/nextjs-progressbar", + "name": "@approximant/next-progress", "version": "0.1.0", "lockfileVersion": 2, "requires": true, "packages": { "": { - "name": "@sqrlplanner/nextjs-progressbar", + "name": "@approximant/next-progress", "version": "0.1.0", "license": "MIT", "dependencies": { diff --git a/package.json b/package.json index b25dde5..e20b6e3 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "@approximant/next-progress", + "name": "@audiu/next-progress", "version": "0.1.0", "description": "NProgress component for Next.js app.", "main": "dist/index.js", @@ -13,7 +13,7 @@ }, "repository": { "type": "git", - "url": "git+https://github.com/approximant/next-progress.git" + "url": "git+https://github.com/audiu/next-progress.git" }, "keywords": [ "Nprogress", @@ -24,7 +24,8 @@ "author": "Eamon Ma", "contributors": [ "Eamon Ma", - "Apal Shah" + "Apal Shah", + "Mike Goodfellow" ], "license": "MIT", "bugs": { diff --git a/src/index.tsx b/src/index.tsx index 7550dff..f448f91 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -9,6 +9,10 @@ import * as NProgress from 'nprogress'; import * as PropTypes from 'prop-types'; import * as React from 'react'; +interface RouteProps { + shallow: boolean; +} + export interface NextProgressProps { /** * The color of the bar. @@ -90,13 +94,9 @@ const NextProgress = ({ const routeChangeStart = ( _: string, - { - shallow, - }: { - shallow: boolean; - } + cfg: RouteProps ) => { - if (shallow && !showOnShallow) return; + if (cfg?.shallow && !showOnShallow) return; if (debounceTimer) { clearTimeout(debounceTimer); @@ -110,20 +110,13 @@ const NextProgress = ({ }; const routeChangeEnd = ( - _: string, - { - shallow, - }: { - shallow: boolean; - } + _: string ) => { if (debounceTimer && !isStarted) { clearTimeout(debounceTimer); return; } - if (shallow && !showOnShallow) return; - if (timer) clearTimeout(timer); timer = setTimeout(() => { isStarted = false; @@ -133,20 +126,13 @@ const NextProgress = ({ const routeChangeError = ( _err: Error, - _url: string, - { - shallow, - }: { - shallow: boolean; - } + _url: string ) => { if (debounceTimer && !isStarted) { clearTimeout(debounceTimer); return; } - if (shallow && !showOnShallow) return; - if (timer) clearTimeout(timer); timer = setTimeout(() => { isStarted = false; From badff80113b3ed984ffc898e7c3070e9f359729c Mon Sep 17 00:00:00 2001 From: Mike Goodfellow Date: Wed, 10 Jan 2024 13:47:27 +0000 Subject: [PATCH 02/12] 0.1.1 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index ea6f0a1..2b7a354 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@approximant/next-progress", - "version": "0.1.0", + "version": "0.1.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@approximant/next-progress", - "version": "0.1.0", + "version": "0.1.1", "license": "MIT", "dependencies": { "@types/nprogress": "^0.2.0", diff --git a/package.json b/package.json index e20b6e3..b34ae5a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@audiu/next-progress", - "version": "0.1.0", + "version": "0.1.1", "description": "NProgress component for Next.js app.", "main": "dist/index.js", "types": "dist/index.d.ts", From 30bd87628871376b5543d984e78f3fd6700da2f8 Mon Sep 17 00:00:00 2001 From: Mike Goodfellow Date: Wed, 10 Jan 2024 13:55:21 +0000 Subject: [PATCH 03/12] Make sure timers are always cleared --- src/index.tsx | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/index.tsx b/src/index.tsx index f448f91..d6d2122 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -76,7 +76,6 @@ const NextProgress = ({ }: NextProgressProps) => { let timer: NodeJS.Timeout | null = null; let debounceTimer: NodeJS.Timeout | null = null; - let isStarted = false; React.useEffect(() => { if (options) { @@ -103,7 +102,6 @@ const NextProgress = ({ } debounceTimer = setTimeout(() => { - isStarted = true; NProgress.set(startPosition); NProgress.start(); }, debounce); @@ -112,14 +110,15 @@ const NextProgress = ({ const routeChangeEnd = ( _: string ) => { - if (debounceTimer && !isStarted) { + if (debounceTimer) { clearTimeout(debounceTimer); - return; } - if (timer) clearTimeout(timer); + if (timer) { + clearTimeout(timer); + } + timer = setTimeout(() => { - isStarted = false; NProgress.done(true); }, stopDelayMs); }; @@ -128,14 +127,15 @@ const NextProgress = ({ _err: Error, _url: string ) => { - if (debounceTimer && !isStarted) { + if (debounceTimer) { clearTimeout(debounceTimer); - return; } - if (timer) clearTimeout(timer); + if (timer) { + clearTimeout(timer); + } + timer = setTimeout(() => { - isStarted = false; NProgress.done(true); }, stopDelayMs); }; From 31930404627c11208dd37ecc59247116594ddd28 Mon Sep 17 00:00:00 2001 From: Mike Goodfellow Date: Wed, 10 Jan 2024 13:55:29 +0000 Subject: [PATCH 04/12] 0.1.2 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2b7a354..21e537b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@approximant/next-progress", - "version": "0.1.1", + "version": "0.1.2", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@approximant/next-progress", - "version": "0.1.1", + "version": "0.1.2", "license": "MIT", "dependencies": { "@types/nprogress": "^0.2.0", diff --git a/package.json b/package.json index b34ae5a..5f7afbe 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@audiu/next-progress", - "version": "0.1.1", + "version": "0.1.2", "description": "NProgress component for Next.js app.", "main": "dist/index.js", "types": "dist/index.d.ts", From 52a8fec2d4a1f7b1432486e195cadb331af19a8c Mon Sep 17 00:00:00 2001 From: Mike Goodfellow Date: Wed, 10 Jan 2024 14:01:27 +0000 Subject: [PATCH 05/12] Tweaking --- src/index.tsx | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/index.tsx b/src/index.tsx index d6d2122..9fdc11f 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -76,6 +76,7 @@ const NextProgress = ({ }: NextProgressProps) => { let timer: NodeJS.Timeout | null = null; let debounceTimer: NodeJS.Timeout | null = null; + let isStarted = false; React.useEffect(() => { if (options) { @@ -102,6 +103,7 @@ const NextProgress = ({ } debounceTimer = setTimeout(() => { + isStarted = true; NProgress.set(startPosition); NProgress.start(); }, debounce); @@ -110,8 +112,9 @@ const NextProgress = ({ const routeChangeEnd = ( _: string ) => { - if (debounceTimer) { + if (debounceTimer && !isStarted) { clearTimeout(debounceTimer); + return; } if (timer) { @@ -119,6 +122,7 @@ const NextProgress = ({ } timer = setTimeout(() => { + isStarted = false; NProgress.done(true); }, stopDelayMs); }; @@ -127,8 +131,9 @@ const NextProgress = ({ _err: Error, _url: string ) => { - if (debounceTimer) { + if (debounceTimer && !isStarted) { clearTimeout(debounceTimer); + return; } if (timer) { @@ -136,6 +141,7 @@ const NextProgress = ({ } timer = setTimeout(() => { + isStarted = false; NProgress.done(true); }, stopDelayMs); }; From 292bd13feb8b6274500918dbfba16402cd20e35b Mon Sep 17 00:00:00 2001 From: Mike Goodfellow Date: Wed, 10 Jan 2024 14:01:36 +0000 Subject: [PATCH 06/12] 0.1.3 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 21e537b..fc71cf2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@approximant/next-progress", - "version": "0.1.2", + "version": "0.1.3", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@approximant/next-progress", - "version": "0.1.2", + "version": "0.1.3", "license": "MIT", "dependencies": { "@types/nprogress": "^0.2.0", diff --git a/package.json b/package.json index 5f7afbe..2280aa9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@audiu/next-progress", - "version": "0.1.2", + "version": "0.1.3", "description": "NProgress component for Next.js app.", "main": "dist/index.js", "types": "dist/index.d.ts", From b9635708ac5bedaaa00538edc25609135256139b Mon Sep 17 00:00:00 2001 From: Mike Goodfellow Date: Wed, 10 Jan 2024 14:18:14 +0000 Subject: [PATCH 07/12] Why is this misbehaving? --- src/index.tsx | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/src/index.tsx b/src/index.tsx index 9fdc11f..2c1b537 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -110,17 +110,17 @@ const NextProgress = ({ }; const routeChangeEnd = ( - _: string + _: string, + cfg: RouteProps ) => { if (debounceTimer && !isStarted) { clearTimeout(debounceTimer); return; } - if (timer) { - clearTimeout(timer); - } + if (cfg?.shallow && !showOnShallow) return; + if (timer) clearTimeout(timer); timer = setTimeout(() => { isStarted = false; NProgress.done(true); @@ -136,10 +136,7 @@ const NextProgress = ({ return; } - if (timer) { - clearTimeout(timer); - } - + if (timer) clearTimeout(timer); timer = setTimeout(() => { isStarted = false; NProgress.done(true); From dea6f0c1aca056ab3765cf1bb3a6c77761f8f370 Mon Sep 17 00:00:00 2001 From: Mike Goodfellow Date: Wed, 10 Jan 2024 14:18:19 +0000 Subject: [PATCH 08/12] 0.1.4 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index fc71cf2..dcce4d6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@approximant/next-progress", - "version": "0.1.3", + "version": "0.1.4", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@approximant/next-progress", - "version": "0.1.3", + "version": "0.1.4", "license": "MIT", "dependencies": { "@types/nprogress": "^0.2.0", diff --git a/package.json b/package.json index 2280aa9..36e66d0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@audiu/next-progress", - "version": "0.1.3", + "version": "0.1.4", "description": "NProgress component for Next.js app.", "main": "dist/index.js", "types": "dist/index.d.ts", From 11285494f5c7ab41062e7e15824a1989c3a51c97 Mon Sep 17 00:00:00 2001 From: Mike Goodfellow Date: Wed, 10 Jan 2024 14:42:26 +0000 Subject: [PATCH 09/12] Logging --- src/index.tsx | 35 ++++++++++++++++++++++------------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/src/index.tsx b/src/index.tsx index 2c1b537..5d0949b 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -76,7 +76,6 @@ const NextProgress = ({ }: NextProgressProps) => { let timer: NodeJS.Timeout | null = null; let debounceTimer: NodeJS.Timeout | null = null; - let isStarted = false; React.useEffect(() => { if (options) { @@ -102,28 +101,33 @@ const NextProgress = ({ clearTimeout(debounceTimer); } + console.log('routeChangeStart', _); + debounceTimer = setTimeout(() => { - isStarted = true; NProgress.set(startPosition); NProgress.start(); + + console.log('routeChangeStart: debounce fired', _); }, debounce); }; const routeChangeEnd = ( - _: string, - cfg: RouteProps + _: string ) => { - if (debounceTimer && !isStarted) { + if (debounceTimer) { clearTimeout(debounceTimer); - return; } - if (cfg?.shallow && !showOnShallow) return; + if (timer) { + clearTimeout(timer); + } + + console.log('routeChangeEnd', _); - if (timer) clearTimeout(timer); timer = setTimeout(() => { - isStarted = false; NProgress.done(true); + + console.log('routeChangeEnd: stop fired', _); }, stopDelayMs); }; @@ -131,15 +135,20 @@ const NextProgress = ({ _err: Error, _url: string ) => { - if (debounceTimer && !isStarted) { + if (debounceTimer) { clearTimeout(debounceTimer); - return; } - if (timer) clearTimeout(timer); + if (timer) { + clearTimeout(timer); + } + + console.log('routeChangeError', _err, _url); + timer = setTimeout(() => { - isStarted = false; NProgress.done(true); + + console.log('routeChangeError: stop fired', _err, _url); }, stopDelayMs); }; From 97d6bdbf2161e0d3e10d745fe53249dc4b0b40f5 Mon Sep 17 00:00:00 2001 From: Mike Goodfellow Date: Wed, 10 Jan 2024 14:42:32 +0000 Subject: [PATCH 10/12] 0.1.5 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index dcce4d6..c431fbd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@approximant/next-progress", - "version": "0.1.4", + "version": "0.1.5", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@approximant/next-progress", - "version": "0.1.4", + "version": "0.1.5", "license": "MIT", "dependencies": { "@types/nprogress": "^0.2.0", diff --git a/package.json b/package.json index 36e66d0..0fdadbc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@audiu/next-progress", - "version": "0.1.4", + "version": "0.1.5", "description": "NProgress component for Next.js app.", "main": "dist/index.js", "types": "dist/index.d.ts", From 5a7a27be5314cad17db9b623146e4f92bfb3e055 Mon Sep 17 00:00:00 2001 From: Mike Goodfellow Date: Wed, 10 Jan 2024 14:49:08 +0000 Subject: [PATCH 11/12] Forcing done() causes it to appear, we only want to hide if started --- src/index.tsx | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/src/index.tsx b/src/index.tsx index 5d0949b..1b06063 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -101,13 +101,10 @@ const NextProgress = ({ clearTimeout(debounceTimer); } - console.log('routeChangeStart', _); - debounceTimer = setTimeout(() => { NProgress.set(startPosition); NProgress.start(); - console.log('routeChangeStart: debounce fired', _); }, debounce); }; @@ -122,13 +119,9 @@ const NextProgress = ({ clearTimeout(timer); } - console.log('routeChangeEnd', _); - timer = setTimeout(() => { - NProgress.done(true); - - console.log('routeChangeEnd: stop fired', _); - }, stopDelayMs); + NProgress.done(); + }, stopDelayMs); }; const routeChangeError = ( @@ -143,13 +136,9 @@ const NextProgress = ({ clearTimeout(timer); } - console.log('routeChangeError', _err, _url); - timer = setTimeout(() => { - NProgress.done(true); - - console.log('routeChangeError: stop fired', _err, _url); - }, stopDelayMs); + NProgress.done(); + }, stopDelayMs); }; return transformCSS(` From ef67f2834dabb72ed9abffebb93c80eaa1bf5a06 Mon Sep 17 00:00:00 2001 From: Mike Goodfellow Date: Wed, 10 Jan 2024 14:49:13 +0000 Subject: [PATCH 12/12] 0.1.6 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index c431fbd..2c5bf45 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@approximant/next-progress", - "version": "0.1.5", + "version": "0.1.6", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@approximant/next-progress", - "version": "0.1.5", + "version": "0.1.6", "license": "MIT", "dependencies": { "@types/nprogress": "^0.2.0", diff --git a/package.json b/package.json index 0fdadbc..3aab56f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@audiu/next-progress", - "version": "0.1.5", + "version": "0.1.6", "description": "NProgress component for Next.js app.", "main": "dist/index.js", "types": "dist/index.d.ts",