vyrn 1.8.1 → 1.8.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare const ClientToastProvider: React.FC<React.PropsWithChildren>;
@@ -1,2 +1,3 @@
1
1
  import React from 'react';
2
+ import '../styles/toast.css';
2
3
  export declare const ToastProvider: React.FC<React.PropsWithChildren>;
package/dist/index.d.ts CHANGED
@@ -1,5 +1,4 @@
1
1
  export { ToastProvider } from './components/ToastProvider';
2
- export { NextToastProvider } from './components/NextToastProvider';
3
- export { useToastContext } from './context/ToastContext';
2
+ export { ClientToastProvider } from './components/ClientToastProvider';
4
3
  export { useToast } from './hooks/useToast';
5
4
  export type { ToastProps, ToastType } from './types';
package/dist/index.esm.js CHANGED
@@ -1,2 +1,2 @@
1
- import t,{useEffect as r,useState as e,useCallback as n}from"react";var o=function(){return o=Object.assign||function(t){for(var r,e=1,n=arguments.length;e<n;e++)for(var o in r=arguments[e])Object.prototype.hasOwnProperty.call(r,o)&&(t[o]=r[o]);return t},o.apply(this,arguments)};function a(t,r,e){if(e||2===arguments.length)for(var n,o=0,a=r.length;o<a;o++)!n&&o in r||(n||(n=Array.prototype.slice.call(r,0,o)),n[o]=r[o]);return t.concat(n||Array.prototype.slice.call(r))}"function"==typeof SuppressedError&&SuppressedError;var i=t.createContext(void 0),u=function(){var r=t.useContext(i);if(!r)throw new Error("useToastContext must be used within a ToastProvider");return r},c=function(e){var n=e.id,o=e.message,a=e.type,i=e.duration,c=void 0===i?3e3:i,s=u().removeToast;return r((function(){var t=setTimeout((function(){s(n)}),c);return function(){return clearTimeout(t)}}),[n,c,s]),t.createElement("div",{className:"vyrn-toast vyrn-toast-".concat(a),role:"alert"},t.createElement("div",{className:"vyrn-toast-message"},o),t.createElement("button",{className:"vyrn-toast-close",onClick:function(){return s(n)},"aria-label":"Close"},"×"))},s=function(r){var e=r.toasts;return t.createElement("div",{className:"vyrn-toast-container","aria-live":"polite","aria-atomic":"true"},e.map((function(r){return t.createElement(c,o({key:r.id},r))})))},l=function(u){var c=u.children,l=e([]),f=l[0],v=l[1],m=e([]),d=m[0],p=m[1],y=n((function(t){var r=Math.random().toString(36).substr(2,9);f.length<5?v((function(e){return a(a([],e,!0),[o(o({},t),{id:r})],!1)})):p((function(r){return a(a([],r,!0),[t],!1)}))}),[f]),g=n((function(t){v((function(r){return r.filter((function(r){return r.id!==t}))}))}),[]);return r((function(){if(f.length<5&&d.length>0){var t=d[0],r=d.slice(1);y(t),p(r)}}),[f,d,y]),t.createElement(i.Provider,{value:{addToast:y,removeToast:g}},c,t.createElement(s,{toasts:f}))},f=function(r){var e=r.children;return t.createElement(l,null,e)},v=function(){var t=u().addToast,r=n((function(r,e,n){void 0===e&&(e="info"),t({message:r,type:e,duration:n})}),[t]);return{toast:r,info:function(t,e){return r(t,"info",e)},success:function(t,e){return r(t,"success",e)},warning:function(t,e){return r(t,"warning",e)},error:function(t,e){return r(t,"error",e)}}};export{f as NextToastProvider,l as ToastProvider,v as useToast,u as useToastContext};
1
+ import t,{useEffect as e,useState as r,useCallback as n}from"react";var o=function(){return o=Object.assign||function(t){for(var e,r=1,n=arguments.length;r<n;r++)for(var o in e=arguments[r])Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t},o.apply(this,arguments)};function a(t,e,r){if(r||2===arguments.length)for(var n,o=0,a=e.length;o<a;o++)!n&&o in e||(n||(n=Array.prototype.slice.call(e,0,o)),n[o]=e[o]);return t.concat(n||Array.prototype.slice.call(e))}"function"==typeof SuppressedError&&SuppressedError;var i=t.createContext(void 0),s=function(){var e=t.useContext(i);if(void 0===e)throw new Error("useToastContext must be used within a ToastProvider");return e},c=function(r){var n=r.id,o=r.message,a=r.type,i=r.duration,c=void 0===i?3e3:i,u=s().removeToast;return e((function(){var t=setTimeout((function(){u(n)}),c);return function(){return clearTimeout(t)}}),[n,c,u]),t.createElement("div",{className:"vyrn-toast vyrn-toast-".concat(a),role:"alert"},t.createElement("div",{className:"vyrn-toast-message"},o),t.createElement("button",{className:"vyrn-toast-close",onClick:function(){return u(n)},"aria-label":"Close"},"×"))},u=function(e){var r=e.toasts;return t.createElement("div",{className:"vyrn-toast-container","aria-live":"polite","aria-atomic":"true"},r.map((function(e){return t.createElement(c,o({key:e.id},e))})))};!function(t,e){void 0===e&&(e={});var r=e.insertAt;if(t&&"undefined"!=typeof document){var n=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css","top"===r&&n.firstChild?n.insertBefore(o,n.firstChild):n.appendChild(o),o.styleSheet?o.styleSheet.cssText=t:o.appendChild(document.createTextNode(t))}}(".vyrn-toast-container{position:fixed;right:1rem;top:1rem;z-index:9999}.vyrn-toast{align-items:center;animation:vyrnFadeIn .3s ease-out;border-radius:4px;box-shadow:0 2px 4px rgba(0,0,0,.1);display:flex;justify-content:space-between;margin-bottom:.5rem;padding:.75rem 1rem}.vyrn-toast-info{background-color:#3498db;color:#fff}.vyrn-toast-success{background-color:#2ecc71;color:#fff}.vyrn-toast-warning{background-color:#f39c12;color:#fff}.vyrn-toast-error{background-color:#e74c3c;color:#fff}.vyrn-toast-message{flex-grow:1;margin-right:1rem}.vyrn-toast-close{background:none;border:none;color:inherit;cursor:pointer;font-size:1.2rem;opacity:.7;transition:opacity .2s}.vyrn-toast-close:hover{opacity:1}@keyframes vyrnFadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes vyrnFadeOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-20px)}}.vyrn-toast-exit{animation:vyrnFadeOut .3s ease-in forwards}",{insertAt:"top"});var f=function(s){var c=s.children,f=r([]),l=f[0],d=f[1],m=r([]),v=m[0],y=m[1],p=n((function(t){var e=Math.random().toString(36).substr(2,9);l.length<5?d((function(r){return a(a([],r,!0),[o(o({},t),{id:e})],!1)})):y((function(e){return a(a([],e,!0),[t],!1)}))}),[l]),g=n((function(t){d((function(e){return e.filter((function(e){return e.id!==t}))}))}),[]);return e((function(){if(l.length<5&&v.length>0){var t=v[0],e=v.slice(1);p(t),y(e)}}),[l,v,p]),t.createElement(i.Provider,{value:{addToast:p,removeToast:g}},c,t.createElement(u,{toasts:l}))},l=function(e){var r=e.children;return t.createElement(f,null,r)},d=function(){var t=s().addToast,e=n((function(e,r,n){void 0===r&&(r="info"),t({message:e,type:r,duration:n})}),[t]);return{toast:e,info:function(t,r){return e(t,"info",r)},success:function(t,r){return e(t,"success",r)},warning:function(t,r){return e(t,"warning",r)},error:function(t,r){return e(t,"error",r)}}};export{l as ClientToastProvider,f as ToastProvider,d as useToast};
2
2
  //# sourceMappingURL=index.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
1
+ {"version":3,"file":"index.esm.js","sources":["../node_modules/style-inject/dist/style-inject.es.js"],"sourcesContent":["function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n"],"names":["css","ref","insertAt","document","head","getElementsByTagName","style","createElement","type","firstChild","insertBefore","appendChild","styleSheet","cssText","createTextNode"],"mappings":"w0CAAA,SAAqBA,EAAKC,QACX,IAARA,IAAiBA,EAAM,CAAA,GAC5B,IAAIC,EAAWD,EAAIC,SAEnB,GAAKF,GAA2B,oBAAbG,SAAnB,CAEA,IAAIC,EAAOD,SAASC,MAAQD,SAASE,qBAAqB,QAAQ,GAC9DC,EAAQH,SAASI,cAAc,SACnCD,EAAME,KAAO,WAEI,QAAbN,GACEE,EAAKK,WACPL,EAAKM,aAAaJ,EAAOF,EAAKK,YAKhCL,EAAKO,YAAYL,GAGfA,EAAMM,WACRN,EAAMM,WAAWC,QAAUb,EAE3BM,EAAMK,YAAYR,SAASW,eAAed,GAnBY,CAqB1D"}
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("react");function e(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var r=e(t),n=function(){return n=Object.assign||function(t){for(var e,r=1,n=arguments.length;r<n;r++)for(var a in e=arguments[r])Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t},n.apply(this,arguments)};function a(t,e,r){if(r||2===arguments.length)for(var n,a=0,o=e.length;a<o;a++)!n&&a in e||(n||(n=Array.prototype.slice.call(e,0,a)),n[a]=e[a]);return t.concat(n||Array.prototype.slice.call(e))}"function"==typeof SuppressedError&&SuppressedError;var o=r.default.createContext(void 0),u=function(){var t=r.default.useContext(o);if(!t)throw new Error("useToastContext must be used within a ToastProvider");return t},i=function(e){var n=e.id,a=e.message,o=e.type,i=e.duration,s=void 0===i?3e3:i,c=u().removeToast;return t.useEffect((function(){var t=setTimeout((function(){c(n)}),s);return function(){return clearTimeout(t)}}),[n,s,c]),r.default.createElement("div",{className:"vyrn-toast vyrn-toast-".concat(o),role:"alert"},r.default.createElement("div",{className:"vyrn-toast-message"},a),r.default.createElement("button",{className:"vyrn-toast-close",onClick:function(){return c(n)},"aria-label":"Close"},"×"))},s=function(t){var e=t.toasts;return r.default.createElement("div",{className:"vyrn-toast-container","aria-live":"polite","aria-atomic":"true"},e.map((function(t){return r.default.createElement(i,n({key:t.id},t))})))},c=function(e){var u=e.children,i=t.useState([]),c=i[0],l=i[1],f=t.useState([]),d=f[0],v=f[1],p=t.useCallback((function(t){var e=Math.random().toString(36).substr(2,9);c.length<5?l((function(r){return a(a([],r,!0),[n(n({},t),{id:e})],!1)})):v((function(e){return a(a([],e,!0),[t],!1)}))}),[c]),m=t.useCallback((function(t){l((function(e){return e.filter((function(e){return e.id!==t}))}))}),[]);return t.useEffect((function(){if(c.length<5&&d.length>0){var t=d[0],e=d.slice(1);p(t),v(e)}}),[c,d,p]),r.default.createElement(o.Provider,{value:{addToast:p,removeToast:m}},u,r.default.createElement(s,{toasts:c}))};exports.NextToastProvider=function(t){var e=t.children;return r.default.createElement(c,null,e)},exports.ToastProvider=c,exports.useToast=function(){var e=u().addToast,r=t.useCallback((function(t,r,n){void 0===r&&(r="info"),e({message:t,type:r,duration:n})}),[e]);return{toast:r,info:function(t,e){return r(t,"info",e)},success:function(t,e){return r(t,"success",e)},warning:function(t,e){return r(t,"warning",e)},error:function(t,e){return r(t,"error",e)}}},exports.useToastContext=u;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("react");function e(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var r=e(t),n=function(){return n=Object.assign||function(t){for(var e,r=1,n=arguments.length;r<n;r++)for(var o in e=arguments[r])Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t},n.apply(this,arguments)};function o(t,e,r){if(r||2===arguments.length)for(var n,o=0,a=e.length;o<a;o++)!n&&o in e||(n||(n=Array.prototype.slice.call(e,0,o)),n[o]=e[o]);return t.concat(n||Array.prototype.slice.call(e))}"function"==typeof SuppressedError&&SuppressedError;var a=r.default.createContext(void 0),i=function(){var t=r.default.useContext(a);if(void 0===t)throw new Error("useToastContext must be used within a ToastProvider");return t},s=function(e){var n=e.id,o=e.message,a=e.type,s=e.duration,c=void 0===s?3e3:s,u=i().removeToast;return t.useEffect((function(){var t=setTimeout((function(){u(n)}),c);return function(){return clearTimeout(t)}}),[n,c,u]),r.default.createElement("div",{className:"vyrn-toast vyrn-toast-".concat(a),role:"alert"},r.default.createElement("div",{className:"vyrn-toast-message"},o),r.default.createElement("button",{className:"vyrn-toast-close",onClick:function(){return u(n)},"aria-label":"Close"},"×"))},c=function(t){var e=t.toasts;return r.default.createElement("div",{className:"vyrn-toast-container","aria-live":"polite","aria-atomic":"true"},e.map((function(t){return r.default.createElement(s,n({key:t.id},t))})))};!function(t,e){void 0===e&&(e={});var r=e.insertAt;if(t&&"undefined"!=typeof document){var n=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css","top"===r&&n.firstChild?n.insertBefore(o,n.firstChild):n.appendChild(o),o.styleSheet?o.styleSheet.cssText=t:o.appendChild(document.createTextNode(t))}}(".vyrn-toast-container{position:fixed;right:1rem;top:1rem;z-index:9999}.vyrn-toast{align-items:center;animation:vyrnFadeIn .3s ease-out;border-radius:4px;box-shadow:0 2px 4px rgba(0,0,0,.1);display:flex;justify-content:space-between;margin-bottom:.5rem;padding:.75rem 1rem}.vyrn-toast-info{background-color:#3498db;color:#fff}.vyrn-toast-success{background-color:#2ecc71;color:#fff}.vyrn-toast-warning{background-color:#f39c12;color:#fff}.vyrn-toast-error{background-color:#e74c3c;color:#fff}.vyrn-toast-message{flex-grow:1;margin-right:1rem}.vyrn-toast-close{background:none;border:none;color:inherit;cursor:pointer;font-size:1.2rem;opacity:.7;transition:opacity .2s}.vyrn-toast-close:hover{opacity:1}@keyframes vyrnFadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes vyrnFadeOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-20px)}}.vyrn-toast-exit{animation:vyrnFadeOut .3s ease-in forwards}",{insertAt:"top"});var u=function(e){var i=e.children,s=t.useState([]),u=s[0],l=s[1],f=t.useState([]),d=f[0],v=f[1],m=t.useCallback((function(t){var e=Math.random().toString(36).substr(2,9);u.length<5?l((function(r){return o(o([],r,!0),[n(n({},t),{id:e})],!1)})):v((function(e){return o(o([],e,!0),[t],!1)}))}),[u]),p=t.useCallback((function(t){l((function(e){return e.filter((function(e){return e.id!==t}))}))}),[]);return t.useEffect((function(){if(u.length<5&&d.length>0){var t=d[0],e=d.slice(1);m(t),v(e)}}),[u,d,m]),r.default.createElement(a.Provider,{value:{addToast:m,removeToast:p}},i,r.default.createElement(c,{toasts:u}))};exports.ClientToastProvider=function(t){var e=t.children;return r.default.createElement(u,null,e)},exports.ToastProvider=u,exports.useToast=function(){var e=i().addToast,r=t.useCallback((function(t,r,n){void 0===r&&(r="info"),e({message:t,type:r,duration:n})}),[e]);return{toast:r,info:function(t,e){return r(t,"info",e)},success:function(t,e){return r(t,"success",e)},warning:function(t,e){return r(t,"warning",e)},error:function(t,e){return r(t,"error",e)}}};
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
1
+ {"version":3,"file":"index.js","sources":["../node_modules/style-inject/dist/style-inject.es.js"],"sourcesContent":["function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n"],"names":["css","ref","insertAt","document","head","getElementsByTagName","style","createElement","type","firstChild","insertBefore","appendChild","styleSheet","cssText","createTextNode"],"mappings":"g/CAAA,SAAqBA,EAAKC,QACX,IAARA,IAAiBA,EAAM,CAAA,GAC5B,IAAIC,EAAWD,EAAIC,SAEnB,GAAKF,GAA2B,oBAAbG,SAAnB,CAEA,IAAIC,EAAOD,SAASC,MAAQD,SAASE,qBAAqB,QAAQ,GAC9DC,EAAQH,SAASI,cAAc,SACnCD,EAAME,KAAO,WAEI,QAAbN,GACEE,EAAKK,WACPL,EAAKM,aAAaJ,EAAOF,EAAKK,YAKhCL,EAAKO,YAAYL,GAGfA,EAAMM,WACRN,EAAMM,WAAWC,QAAUb,EAE3BM,EAAMK,YAAYR,SAASW,eAAed,GAnBY,CAqB1D"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vyrn",
3
- "version": "1.8.1",
3
+ "version": "1.8.3",
4
4
  "description": "A modern, customizable toast library for React and Next.js",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.esm.js",
@@ -50,6 +50,7 @@
50
50
  "typescript": "^4.5.0"
51
51
  },
52
52
  "dependencies": {
53
+ "@babel/preset-react": "^7.26.3",
53
54
  "@rollup/plugin-babel": "^6.0.4"
54
55
  }
55
56
  }
package/rollup.config.js CHANGED
@@ -1,9 +1,21 @@
1
1
  import typescript from 'rollup-plugin-typescript2';
2
2
  import postcss from 'rollup-plugin-postcss';
3
3
  import { terser } from 'rollup-plugin-terser';
4
- import pkg from './package.json';
5
4
  import { babel } from '@rollup/plugin-babel';
6
- import replace from '@rollup/plugin-replace';
5
+ import pkg from './package.json';
6
+
7
+ const clientPlugin = () => ({
8
+ name: 'use-client',
9
+ transform(code, id) {
10
+ if (id.endsWith('.tsx') || id.endsWith('.ts')) {
11
+ const useClientDirective = "'use client';\n\n";
12
+ return {
13
+ code: useClientDirective + code,
14
+ map: { mappings: '' }
15
+ };
16
+ }
17
+ }
18
+ });
7
19
 
8
20
  export default {
9
21
  input: 'src/index.ts',
@@ -22,12 +34,7 @@ export default {
22
34
  },
23
35
  ],
24
36
  plugins: [
25
- replace({
26
- preventAssignment: true,
27
- values: {
28
- 'use client': '',
29
- },
30
- }),
37
+ clientPlugin(),
31
38
  typescript({
32
39
  tsconfig: 'tsconfig.json',
33
40
  clean: true,
@@ -41,18 +48,10 @@ export default {
41
48
  }),
42
49
  babel({
43
50
  babelHelpers: 'bundled',
44
- presets: ['@babel/preset-react'],
45
- plugins: [
46
- ['@babel/plugin-syntax-typescript', { isTSX: true }],
47
- ],
51
+ extensions: ['.ts', '.tsx'],
48
52
  }),
49
- {
50
- name: 'add-use-client',
51
- renderChunk(code) {
52
- return "'use client';\n" + code;
53
- }
54
- },
55
53
  terser(),
56
54
  ],
57
55
  external: [...Object.keys(pkg.peerDependencies || {})],
58
56
  };
57
+
@@ -0,0 +1,8 @@
1
+ 'use client';
2
+
3
+ import React from 'react';
4
+ import { ToastProvider } from './ToastProvider';
5
+
6
+ export const ClientToastProvider: React.FC<React.PropsWithChildren> = ({ children }) => {
7
+ return <ToastProvider>{children}</ToastProvider>;
8
+ };
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import React, { useEffect } from 'react';
2
4
  import { ToastProps } from '../types';
3
5
  import { useToastContext } from '../context/ToastContext';
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import React from 'react';
2
4
  import { Toast } from './Toast';
3
5
  import { ToastProps } from '../types';
@@ -1,25 +1,24 @@
1
1
  'use client';
2
+
2
3
  import React, { useState, useCallback, useEffect } from 'react';
3
4
  import { ToastContext } from '../context/ToastContext';
4
5
  import { ToastContainer } from './ToastContainer';
5
6
  import { ToastProps } from '../types';
6
7
  import { MAX_TOASTS } from '../utils/constants';
8
+ import '../styles/toast.css';
7
9
 
8
10
  export const ToastProvider: React.FC<React.PropsWithChildren> = ({ children }) => {
9
11
  const [toasts, setToasts] = useState<ToastProps[]>([]);
10
12
  const [queue, setQueue] = useState<Omit<ToastProps, 'id'>[]>([]);
11
13
 
12
- const addToast = useCallback(
13
- (toast: Omit<ToastProps, 'id'>) => {
14
- const id = Math.random().toString(36).substr(2, 9);
15
- if (toasts.length < MAX_TOASTS) {
16
- setToasts((prevToasts) => [...prevToasts, { ...toast, id }]);
17
- } else {
18
- setQueue((prevQueue) => [...prevQueue, toast]);
19
- }
20
- },
21
- [toasts],
22
- );
14
+ const addToast = useCallback((toast: Omit<ToastProps, 'id'>) => {
15
+ const id = Math.random().toString(36).substr(2, 9);
16
+ if (toasts.length < MAX_TOASTS) {
17
+ setToasts((prevToasts) => [...prevToasts, { ...toast, id }]);
18
+ } else {
19
+ setQueue((prevQueue) => [...prevQueue, toast]);
20
+ }
21
+ }, [toasts]);
23
22
 
24
23
  const removeToast = useCallback((id: string) => {
25
24
  setToasts((prevToasts) => prevToasts.filter((toast) => toast.id !== id));
@@ -40,3 +39,4 @@ export const ToastProvider: React.FC<React.PropsWithChildren> = ({ children }) =
40
39
  </ToastContext.Provider>
41
40
  );
42
41
  };
42
+
@@ -1,4 +1,5 @@
1
1
  'use client';
2
+
2
3
  import React from 'react';
3
4
  import { ToastContextValue } from '../types';
4
5
 
@@ -6,8 +7,9 @@ export const ToastContext = React.createContext<ToastContextValue | undefined>(u
6
7
 
7
8
  export const useToastContext = () => {
8
9
  const context = React.useContext(ToastContext);
9
- if (!context) {
10
+ if (typeof context === 'undefined') {
10
11
  throw new Error('useToastContext must be used within a ToastProvider');
11
12
  }
12
13
  return context;
13
14
  };
15
+
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import { useCallback } from 'react';
2
4
  import { useToastContext } from '../context/ToastContext';
3
5
  import { ToastType } from '../types';
package/src/index.ts CHANGED
@@ -1,6 +1,5 @@
1
1
  export { ToastProvider } from './components/ToastProvider';
2
- export { NextToastProvider } from './components/NextToastProvider';
3
- export { useToastContext } from './context/ToastContext';
2
+ export { ClientToastProvider } from './components/ClientToastProvider';
4
3
  export { useToast } from './hooks/useToast';
5
4
  export type { ToastProps, ToastType } from './types';
6
5