From 261372289a49ce57cadb54e49c8d8874ca1ff94f Mon Sep 17 00:00:00 2001 From: checktheroads Date: Sun, 1 Aug 2021 00:27:27 -0700 Subject: [PATCH] #6797: Fix sidenav jumpy/glitchy behavior on page reload when pinned --- netbox/project-static/dist/graphiql.js.map | Bin 2644758 -> 2644899 bytes netbox/project-static/dist/netbox.js | Bin 312523 -> 312604 bytes netbox/project-static/dist/netbox.js.map | Bin 1116612 -> 1116977 bytes netbox/project-static/src/sidenav.ts | 5 ++++- netbox/project-static/src/state/index.ts | 14 ++++++++++++-- netbox/templates/base/base.html | 17 ++++++++++++++++- 6 files changed, 32 insertions(+), 4 deletions(-) diff --git a/netbox/project-static/dist/graphiql.js.map b/netbox/project-static/dist/graphiql.js.map index 5a7a6a823107dba01d832e3443dbcce0039cd580..fce5c4536ab526a781eb4cf9d0c577733d986a8e 100644 GIT binary patch delta 285 zcmW;Exk|)f7=>Xn?)x%sGj5-|#Ng;9WTJ>7%4nx)viy)h{1dVa3|Lqk@D7}Mu*eOF zDQu>b|&4RefU)>?h($ diff --git a/netbox/project-static/dist/netbox.js b/netbox/project-static/dist/netbox.js index c0f1e123d154350666164edaaea9b865a1a5f0e8..93f8ecf326d8f7162020946a59132a47eb09f518 100644 GIT binary patch delta 127 zcmX@zDLki3xS@ryg{g&k3roUkxBP;V%>2A!+dQ3;%7WDVG=-9k%wj#Ls9ttzrLC<} zaY<2TUb>P!SPCSBuEuJ5^lBEp?K4)h{9_W;0jjW4%1bRt%CFEZ&P++oODt2`K5ZR~ GsTcqrk1!|z delta 37 tcmbQ!C49P5xS@ryg{g&k3roW4>8n?>XfoO6Z9l%6g`0W%^K~qyVgM6^4if+X diff --git a/netbox/project-static/dist/netbox.js.map b/netbox/project-static/dist/netbox.js.map index 3f86f21082a3f225701c652137ae95407a08cd22..197b62541f1e3c448e9ac0af083229a7117accd6 100644 GIT binary patch delta 596 zcmZXPL2J}N6vx@^*6y~crh+2%GN4dd#!atXq56_;V_eD_))fRVv6*bgrjw9N%LXYb zjQRlt=j3-#EaVG_r=I*0UIkAT1!p#;6g<3ny!ZdV_j~j8{l@1H8?Qu7)WwWwh*@z# z%!#IGiFvVbWc=d0PZ>g1yR8#yqft&!fN~yix{cywJBWuo$$~LKyQDyr<(vc|N+J~O z^JGuEf;cYFm@ty5ij7giNT*t6>7>T)cGbd6Y2{CDv>Wn%VJxp()|7Qhnl6t}NFvHe zSj{6EpLQ-)6Lg5r2_(yD&MO7$^Sfw;5&kTh+|Fr8Sa7g% zHt_CP7%CQ3TvTzXJQn6hUfYq+Pt0#GpQJW+;Su0IKp*=6BisWw!T{jmEr5Z3rh>06 zJ|2RzW>;&?r=8^;gIFSVubGqtpQJG->r_y>qwzYzcc delta 256 zcmdlu&E?2smxdO`7N!>F7M2#)7Pc1l7LFFq7OocVEj*t~wkMYIsIyGhui{ajUR%kd zI^Fy^r{MO2DjqX#!UX!?|20>_N~3!HS^9lacNyd53Abvzv%eIcw&Cr8Ijkd$kdGejiN(J@rV z)zLL#`?22wQ<#`4yr#$e6Yx}WEOpXxc64;r@pp6#1ep*B;R4kM19iFK%yYW}v*0CW#;on1*#zxa08l({ pinned: true }, { persist: true }); + this.state = new StateManager( + { pinned: true }, + { persist: true, key: 'netbox-sidenav' }, + ); this.init(); this.initLinks(); diff --git a/netbox/project-static/src/state/index.ts b/netbox/project-static/src/state/index.ts index 3fcdb5889..6d9e46de0 100644 --- a/netbox/project-static/src/state/index.ts +++ b/netbox/project-static/src/state/index.ts @@ -8,6 +8,11 @@ interface StateOptions { * exists in localStorage, the value will be read and used as the initial value. */ persist?: boolean; + + /** + * Use a static localStorage key instead of automatically generating one. + */ + key?: string; } /** @@ -49,10 +54,15 @@ export class StateManager { private key: string = ''; constructor(raw: T, options: StateOptions) { - this.key = this.generateStateKey(raw); - this.options = options; + // Use static key if defined. + if (typeof this.options.key === 'string') { + this.key = this.options.key; + } else { + this.key = this.generateStateKey(raw); + } + if (this.options.persist) { const saved = this.retrieve(); if (saved !== null) { diff --git a/netbox/templates/base/base.html b/netbox/templates/base/base.html index 556c9e079..04e980e9d 100644 --- a/netbox/templates/base/base.html +++ b/netbox/templates/base/base.html @@ -21,7 +21,7 @@ {# Page title #} {% block title %}Home{% endblock %} | NetBox - {# Page layout #} {% block layout %}{% endblock %}