@knocklabs/react-core
Advanced tools
Comparing version 0.2.16 to 0.2.17
# Changelog | ||
## 0.2.17 | ||
### Patch Changes | ||
- f25b112: fix: ensure feed store reference re-renders after changes to user | ||
- Updated dependencies [f25b112] | ||
- @knocklabs/client@0.10.7 | ||
## 0.2.16 | ||
@@ -4,0 +12,0 @@ |
@@ -1,2 +0,2 @@ | ||
"use strict";const d=require("@knocklabs/client"),h=require("react"),k=require("zustand/shallow"),f=t=>t&&typeof t=="object"&&"default"in t?t:{default:t},_=f(d),a=f(h),R=f(k);function s(t,c,r,n={}){t.authenticate(c,r,{onUserTokenExpiring:n==null?void 0:n.onUserTokenExpiring,timeBeforeExpirationInMs:n==null?void 0:n.timeBeforeExpirationInMs})}function m(t,c,r,n={}){const l=a.default.useRef(),i=a.default.useRef(),u=a.default.useMemo(()=>{const e=i.current||{};return R.default(n,e)?e:n},[n]);return a.default.useMemo(()=>{const e=l.current;if(e&&e.isAuthenticated()&&(e.userId!==c||e.userToken!==r))return s(e,c,r,u),e;e&&e.teardown();const o=new _.default(t,{host:u.host,logLevel:u.logLevel});return s(o,c,r,u),l.current=o,o},[t,c,r,u])}module.exports=m; | ||
"use strict";const d=require("@knocklabs/client"),h=require("react"),k=require("zustand/shallow"),l=n=>n&&typeof n=="object"&&"default"in n?n:{default:n},_=l(d),a=l(h),R=l(k);function s(n,r,c,e={}){n.authenticate(r,c,{onUserTokenExpiring:e==null?void 0:e.onUserTokenExpiring,timeBeforeExpirationInMs:e==null?void 0:e.timeBeforeExpirationInMs})}function m(n,r,c,e={}){const o=a.default.useRef(),i=a.default.useRef(),u=a.default.useMemo(()=>{const t=i.current||{};return R.default(e,t)?t:(i.current=e,e)},[e]);return a.default.useMemo(()=>{const t=o.current;if(t&&t.isAuthenticated()&&(t.userId!==r||t.userToken!==c))return s(t,r,c,u),t;t&&t.teardown();const f=new _.default(n,{host:u.host,logLevel:u.logLevel});return s(f,r,c,u),o.current=f,f},[n,r,c,u])}module.exports=m; | ||
//# sourceMappingURL=useAuthenticatedKnockClient.js.map |
@@ -1,2 +0,2 @@ | ||
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("date-fns");function c(e){return e>9?"9+":e}function i(e,r={}){try{const t=o.parseISO(e);return o.intlFormatDistance(t,new Date,{locale:r.locale})}catch{return e}}function d(e){return e.charAt(0).toUpperCase()+e.slice(1)}function l(e,r){return e!==void 0?e:r}function u(e,r={}){return[e,r.source,r.tenant,r.has_tenant,r.archived].filter(t=>t!=null).join("-")}function f({knockSlackChannelId:e,tenant:r,connectionStatus:t,errorLabel:n}){return[e,r,t,n].filter(a=>a!=null).join("-")}exports.feedProviderKey=u;exports.formatBadgeCount=c;exports.formatTimestamp=i;exports.renderNodeOrFallback=l;exports.slackProviderKey=f;exports.toSentenceCase=d; | ||
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("date-fns");function c(e){return e>9?"9+":e}function i(e,t={}){try{const r=o.parseISO(e);return o.intlFormatDistance(r,new Date,{locale:t.locale})}catch{return e}}function d(e){return e.charAt(0).toUpperCase()+e.slice(1)}function l(e,t){return e!==void 0?e:t}function u(e,t,r={}){return[e,t,r.source,r.tenant,r.has_tenant,r.archived].filter(n=>n!=null).join("-")}function f({knockSlackChannelId:e,tenant:t,connectionStatus:r,errorLabel:n}){return[e,t,r,n].filter(a=>a!=null).join("-")}exports.feedProviderKey=u;exports.formatBadgeCount=c;exports.formatTimestamp=i;exports.renderNodeOrFallback=l;exports.slackProviderKey=f;exports.toSentenceCase=d; | ||
//# sourceMappingURL=utils.js.map |
@@ -1,2 +0,2 @@ | ||
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react"),d=require("zustand"),l=require("../../core/context/KnockProvider.js");require("@knocklabs/client");require("zustand/shallow");const f=require("../../core/utils.js"),k=require("../hooks/useNotifications.js"),b=e=>e&&typeof e=="object"&&"default"in e?e:{default:e};function p(e){if(e&&typeof e=="object"&&"default"in e)return e;const o=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const r=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(o,t,r.get?r:{enumerable:!0,get:()=>e[t]})}}return o.default=e,Object.freeze(o)}const n=p(a),v=b(d),i=n.createContext(null),m=({feedId:e,children:o,defaultFeedOptions:t={},colorMode:r="light"})=>{const c=l.useKnockClient(),u=k(c,e,t),s=v.default(u.store);return n.createElement(i.Provider,{key:f.feedProviderKey(e,t),value:{knock:c,feedClient:u,useFeedStore:s,colorMode:r}},o)},y=()=>{const e=n.useContext(i);if(e===void 0)throw new Error("useKnockFeed must be used within a KnockFeedProvider");return e};exports.KnockFeedProvider=m;exports.useKnockFeed=y; | ||
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react"),d=require("zustand"),l=require("../../core/context/KnockProvider.js");require("@knocklabs/client");require("zustand/shallow");const f=require("../../core/utils.js"),k=require("../hooks/useNotifications.js"),b=e=>e&&typeof e=="object"&&"default"in e?e:{default:e};function p(e){if(e&&typeof e=="object"&&"default"in e)return e;const o=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const r=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(o,t,r.get?r:{enumerable:!0,get:()=>e[t]})}}return o.default=e,Object.freeze(o)}const n=p(a),m=b(d),i=n.createContext(void 0),v=({feedId:e,children:o,defaultFeedOptions:t={},colorMode:r="light"})=>{const c=l.useKnockClient(),u=k(c,e,t),s=n.useMemo(()=>m.default(u.store),[u]);return n.createElement(i.Provider,{key:f.feedProviderKey(c.userId,e,t),value:{knock:c,feedClient:u,useFeedStore:s,colorMode:r}},o)},y=()=>{const e=n.useContext(i);if(!e)throw new Error("useKnockFeed must be used within a KnockFeedProvider");return e};exports.KnockFeedProvider=v;exports.useKnockFeed=y; | ||
//# sourceMappingURL=KnockFeedProvider.js.map |
@@ -10,3 +10,3 @@ import { FeedClientOptions } from "@knocklabs/client"; | ||
export declare function renderNodeOrFallback(node: ReactNode, fallback: ReactNode): ReactNode; | ||
export declare function feedProviderKey(userFeedId: string, options?: FeedClientOptions): string; | ||
export declare function feedProviderKey(userId: string | undefined, feedId: string, options?: FeedClientOptions): string; | ||
export declare function slackProviderKey({ knockSlackChannelId, tenant, connectionStatus, errorLabel, }: { | ||
@@ -13,0 +13,0 @@ knockSlackChannelId: string; |
@@ -5,3 +5,3 @@ { | ||
"author": "@knocklabs", | ||
"version": "0.2.16", | ||
"version": "0.2.17", | ||
"license": "MIT", | ||
@@ -52,3 +52,3 @@ "main": "dist/cjs/index.js", | ||
"dependencies": { | ||
"@knocklabs/client": "^0.10.6", | ||
"@knocklabs/client": "^0.10.7", | ||
"date-fns": "^3.3.1", | ||
@@ -55,0 +55,0 @@ "swr": "^2.2.5", |
@@ -33,3 +33,9 @@ import Knock, { AuthenticateOptions, KnockOptions } from "@knocklabs/client"; | ||
const currentOptions = optionsRef.current || {}; | ||
return shallow(options, currentOptions) ? currentOptions : options; | ||
if (shallow(options, currentOptions)) { | ||
return currentOptions; | ||
} | ||
optionsRef.current = options; | ||
return options; | ||
}, [options]); | ||
@@ -36,0 +42,0 @@ |
@@ -42,7 +42,9 @@ import { FeedClientOptions } from "@knocklabs/client"; | ||
export function feedProviderKey( | ||
userFeedId: string, | ||
userId: string | undefined, | ||
feedId: string, | ||
options: FeedClientOptions = {}, | ||
) { | ||
return [ | ||
userFeedId, | ||
userId, | ||
feedId, | ||
options.source, | ||
@@ -49,0 +51,0 @@ options.tenant, |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
193958
1851
Updated@knocklabs/client@^0.10.7