Read the Solution.
It will fix the problem, trust me!
Read the Solution.
It will fix the problem, trust me!
I was switching between browsers and ChatGPT was working fine, it wasn’t until I decided to sync browser data between Waterfox (Browser based on Firefox) and Firefox itself using sync function with my Firefox account.
Waterfox is even more privacy focused than Firefox and a little aggressive, which makes me think that it or privacy/tracker extension might be causing the issue.
Ronald’s solution worked for me on Firefox, haven’t tested other browsers.
Edit: This was meant to be a reply to the new comment saying they just installed Firefox, and suggesting the data sync might be causing the issue. I had imported my data from Chrome browser as well.
This looks really cool. & Open source! Thanks for sharing!
Just wanted to add information regarding this issue.
I had the same problem after a reinstall of windows.
The issue when first loading now is that the localStorage keyname that is set automatically, is now formatted with a hash in it - but it would seem it was lacking that before.
So the original keyname: ‘oai/apps/hasSeenOnboarding/chat’
actually looks like this now:
‘oai/apps/hasSeenOnboarding/321321-321321-321321-321321/chat’
renaming the LS keyname to ‘oai/apps/hasSeenOnboarding/chat’, without the hash resolved the issue.
So somewhere in the past months it seems they’ve pushed an update regarding how to read that keyname+value, but not properly addressing the formatting changes of the keyname they are parsing.
It seems like they have separated it into two parts. One for personal, and one for a Workspace. Possibly for business accounts?
Here’s what I managed to grab for setting the value.
ex = function (e, t) {
var a = (0, g.useCallback) (function () {
em.m.setItem(em.F.WorkspaceOnboarding, new Date().toLocaleDateString('en-CA', {
year: 'numeric',
month: '2-digit',
day: '2-digit'
}), {
workspaceId: null != t ? t : void 0,
workspaceScope: e
})
}, [
e,
t
]),
n = (0, o._) ((0, g.useState) (null), 2),
s = n[0],
r = n[1];
(0, g.useEffect) (function () {
var a = em.m.getItem(em.F.WorkspaceOnboarding, {
workspaceScope: e
});
a || e !== i.Workspace || (a = em.m.getItem(em.F.WorkspaceOnboarding, {
workspaceId: null != t ? t : void 0,
workspaceScope: e
})),
r(!!a && a)
}, [
e,
t
]);
var c = (0, g.useCallback) (function () {
return s ? new Date(!0 === s ? '2022-12-14' : s) : s
}, [
s
]);
return (0, g.useMemo) (function () {
return {
setHasSeenOnboarding: a,
getHasSeenOnboardingDate: c
}
}, [
c,
a
])
};
Then determining if the modal should appear
function eW(e) {
var t = e.ageVerificationDeadline,
a = e.showCookieConsentBanner,
n = e.canManageBrowserStorage,
s = (0, o._) ((0, g.useState) (0), 2),
r = s[0],
l = s[1],
d = (0, h.ec) (h.F_.workspaceId),
u = ex(i.Personal).getHasSeenOnboardingDate,
p = (0, h.ec) (h.F_.isBusinessWorkspace),
f = ex(i.Workspace, d).getHasSeenOnboardingDate,
m = 0 === (0, h.hz) ().size ? 'loading' : ee.b.getCookie(ee.c.AgeVerification) || null == t ? 'hide' : 'show',
x = 0 === (0, h.hz) ().size ? 'loading' : a ? 'show' : 'hide',
v = (0, h.$T) (),
b = (0, y.Go) (),
k = (0, h.ec) (h.F_.hasMultipleWorkspaces) && null == d,
w = (0, g.useMemo) (function () {
return [{
Component: Q,
getModalState: function () {
return v ? 'loading' : k ? 'show' : 'hide'
}
},
{
Component: P,
getModalState: function () {
return v ? 'loading' : null !== b ? 'show' : 'hide'
}
},
{
Component: eu,
getModalState: function () {
return x
}
},
{
Component: eE,
getModalState: function () {
if (p) return 'hide';
var e = u();
return null === e ? 'loading' : !1 === e ? 'show' : 'hide'
}
},
{
Component: eT,
getModalState: function () {
if (!p) return 'hide';
var e = f();
return null === e ? 'loading' : !1 === e ? 'show' : 'hide'
}
},
{
Component: es,
getModalState: function () {
return m
}
}
]
}, [
v,
k,
b,
x,
p,
u,
f,
m
]);
(0, g.useEffect) (function () {
w[r] && 'hide' === w[r].getModalState() && l(w.findIndex(function (e) {
return 'hide' !== e.getModalState()
}))
}, [
r,
w
]);
var j = w[r];
if (null == j) return null;
var M = j.getModalState();
if ('loading' === M) return null;
'hide' === M && l(function (e) {
return e + 1
});
var C = w[r].Component;
return (0, c.jsx) (C, {
onClose: function () {
l(function (e) {
return e + 1
})
},
ageVerificationDeadline: t,
canManageBrowserStorage: n
})
}
Either that or shared computers, if two people share the same computer and swap google account it will be a different id on that tip first seen, makes sense if they don’t want subsequent logins to inherit hidden tips etc but someone made a goof
I believe that for Enterprise accounts they are multiple accounts/workspaces held under the same account. Looking further it seems like the workspaceID for me is just my account ID as a hash.
I think this is the truth It is accidentally setting the localstorage to indicate that we have seen the “Workplace” onBoarding, and not the “Personal”.
Specifically. It is this part of the code that makes the mistake I believe. It’s a bit hard because of being minified and I am assuming a bit of what the variables are.
Both the personal and workspace is checked, with “t” (or “d” as the workspaceID) being undefined for personal.
u = ex(i.Personal).getHasSeenOnboardingDate,
p = (0, h.ec) (h.F_.isBusinessWorkspace),
f = ex(i.Workspace, d).getHasSeenOnboardingDate,
It’s important to note here that “t” is the variable used to determine if the workspaceId is used
i is an enum defined simply as:
i: {…}
Personal: "chat"
Workspace: "workspace"
ex = function (e, t) {
var a = (0, g.useCallback) (function () {
em.m.setItem(em.F.WorkspaceOnboarding, new Date().toLocaleDateString('en-CA', {
year: 'numeric',
month: '2-digit',
day: '2-digit'
}), {
workspaceId: null != t ? t : void 0,
workspaceScope: e
})
}, [
e,
t
]),
I set a breakpoint and for some reason it is indeed setting it as a workspace ID and not as personal.
It’s called from here:
function ev(e) {
var t = e.onClose,
a = e.scope,
n = ex(a, (0, h.ec) (h.F_.workspaceId)).setHasSeenOnboarding,
s = (0, g.useCallback) (function () {
t(!0),
n()
}, [
t,
n
]);
return a === i.Personal ? (0, c.jsx) (ey, {
onSubmit: s
}) : (0, c.jsx) (ek, {
onSubmit: s
})
}
Specifically:
n = ex(a, (0, h.ec) (h.F_.workspaceId)).setHasSeenOnboarding,
Looks like h.F_.workspaceId should be undefined (to indicate a personal account) but it’s always truthy (I think)
Looks like it is meant to separate between personal and business accounts based on the h.F_ values. So I’m guessing “workspaces” are shared conversations.
F_: {…}
accountUserId(Y)
businessWorkspace(Y)
businessWorkspaceId(Y)
features(Y)
hasCustomerObject(Y)
hasMultipleWorkspaces(Y)
hasPaidSubscription(Y)
isAdmin(Y)
isBusinessWorkspace(Y)
isOwner(Y)
isPersonalWorkspace(Y)
lastActiveSubscription(Y)
useHasClaimedFreeTrial(Y)
wasPaidCustomer(Y)
workspaceId(Y)
workspaces(Y)
It could also be that they are reading/separating it incorrectly. It’s a function from a different location and I think doing this is fruitless
s = (0, o._) ((0, g.useState) (0), 2),
r = s[0],
l = s[1],
r is always false with the hashed key, but properly returns the date when using the non-hashed version.
I believe it’s either A) They forgot to consider if there’s a hash when checking or B) They are incorrectly adding the hash when it’s a chat and not a workspace. Could even be both A and B. This is not harmonized at all.
So. That was fun. Even if nobody cares and nothing will happen and this bug will probably never get acknowledged. But. Yay…
I could also be wrong here. Still a reactjs newbie.
The strange thing is how they have labelled it as “workspaceOnBoarding” (resolves to WorkspaceOnboarding: "oai/apps/hasSeenOnboarding"
)which leads me to believe that they want to consolidate the two together but didn’t. Or half-way did. Whatever.
This has been fixed with some new changes and general cleanup. (Including workspaceOnboarding → Onboarding)
var a = (0, m.useCallback) (function () {
ef.m.setItem(ef.F.Onboarding, new Date().toLocaleDateString('en-CA', {
year: 'numeric',
month: '2-digit',
day: '2-digit'
}), {
workspaceId: null != t ? t : void 0,
workspaceScope: e
})
}, [
e,
t
]),
from
n = ex(a, (0, h.ec) (h.F_.workspaceId)).setHasSeenOnboarding,
to
s = ex(a, a === i.Workspace ? n : void 0).setHasSeenOnboarding,
This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.