@retinalabsllc/zairusjs 21.0.6 → 21.0.8
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.
- package/dist/index.js +23 -31
- package/dist/index.mjs +102 -111
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -4866,11 +4866,7 @@ var UniversalBuyCryptoPage = ({
|
|
|
4866
4866
|
var import_react83 = __toESM(require("react"));
|
|
4867
4867
|
var import_react84 = require("@hugeicons/react");
|
|
4868
4868
|
var import_core_free_icons30 = require("@hugeicons/core-free-icons");
|
|
4869
|
-
var HuddleAvatar = ({
|
|
4870
|
-
const [loaded, setLoaded] = (0, import_react83.useState)(false);
|
|
4871
|
-
const [error, setError] = (0, import_react83.useState)(false);
|
|
4872
|
-
const defaultAvatar = "https://storage.googleapis.com/retina-cloud-v2/assets/images/default_a.avif";
|
|
4873
|
-
const finalSrc = error || !src ? defaultAvatar : src;
|
|
4869
|
+
var HuddleAvatar = ({ timeString, status, sizeClass = "w-10 h-10" }) => {
|
|
4874
4870
|
const getStatusColor = () => {
|
|
4875
4871
|
switch (status?.toUpperCase()) {
|
|
4876
4872
|
case "SCHEDULED":
|
|
@@ -4885,16 +4881,16 @@ var HuddleAvatar = ({ src, status, sizeClass = "w-10 h-10" }) => {
|
|
|
4885
4881
|
return "bg-stone-200";
|
|
4886
4882
|
}
|
|
4887
4883
|
};
|
|
4888
|
-
|
|
4889
|
-
|
|
4890
|
-
|
|
4891
|
-
|
|
4892
|
-
|
|
4893
|
-
|
|
4894
|
-
|
|
4895
|
-
onError: () => setError(true)
|
|
4884
|
+
let day = "--";
|
|
4885
|
+
let month = "---";
|
|
4886
|
+
if (timeString) {
|
|
4887
|
+
const parts = timeString.split(" ");
|
|
4888
|
+
if (parts.length >= 2) {
|
|
4889
|
+
day = parts[0];
|
|
4890
|
+
month = parts[1].substring(0, 3).toUpperCase();
|
|
4896
4891
|
}
|
|
4897
|
-
|
|
4892
|
+
}
|
|
4893
|
+
return /* @__PURE__ */ import_react83.default.createElement("div", { className: `relative shrink-0 ${sizeClass}` }, /* @__PURE__ */ import_react83.default.createElement("div", { className: "w-full h-full rounded-lg bg-white border border-stone-200 flex flex-col items-center justify-center overflow-hidden" }, /* @__PURE__ */ import_react83.default.createElement("span", { className: "text-[9px] f tracking-wider leading-tight", style: { color: "#d97757" } }, month), /* @__PURE__ */ import_react83.default.createElement("span", { className: "text-sm text-black leading-tight" }, day)), /* @__PURE__ */ import_react83.default.createElement("div", { className: `absolute -bottom-1 -right-1 w-3.5 h-3.5 rounded-full border-2 border-white z-10 ${getStatusColor()}` }));
|
|
4898
4894
|
};
|
|
4899
4895
|
var PageSpinner6 = () => /* @__PURE__ */ import_react83.default.createElement("div", { className: "flex justify-center items-center py-12" }, /* @__PURE__ */ import_react83.default.createElement(import_react84.HugeiconsIcon, { icon: import_core_free_icons30.Loading03Icon, size: 32, className: "animate-spin mb-4 text-black" }));
|
|
4900
4896
|
var UniversalHuddlesPage = ({
|
|
@@ -4922,7 +4918,7 @@ var UniversalHuddlesPage = ({
|
|
|
4922
4918
|
onClick: () => onHuddleClick(huddle.id),
|
|
4923
4919
|
className: "flex flex-row items-center gap-4 py-2 hover:bg-stone-50 transition-colors cursor-pointer group min-w-0 px-3 -mx-3 rounded-xl"
|
|
4924
4920
|
},
|
|
4925
|
-
/* @__PURE__ */ import_react83.default.createElement(HuddleAvatar, {
|
|
4921
|
+
/* @__PURE__ */ import_react83.default.createElement(HuddleAvatar, { timeString: huddle.timeString, status: huddle.status }),
|
|
4926
4922
|
/* @__PURE__ */ import_react83.default.createElement("div", { className: "flex flex-col min-w-0 flex-1" }, /* @__PURE__ */ import_react83.default.createElement("p", { className: "text-sm text-black tracking-tight truncate" }, huddle.name), /* @__PURE__ */ import_react83.default.createElement("span", { className: "text-xs text-stone-500 truncate block mt-0.5" }, huddle.timeString)),
|
|
4927
4923
|
/* @__PURE__ */ import_react83.default.createElement(import_react84.HugeiconsIcon, { icon: import_core_free_icons30.ArrowRight01Icon, size: 14, className: "shrink-0 text-stone-400" })
|
|
4928
4924
|
))), /* @__PURE__ */ import_react83.default.createElement("div", { className: "flex items-center justify-between pt-6 mt-2 " }, /* @__PURE__ */ import_react83.default.createElement("span", { className: "text-xs text-stone-400 tracking-[0.2em]" }, "Page ", currentPage, " of ", totalPages === 0 ? 1 : totalPages), /* @__PURE__ */ import_react83.default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ import_react83.default.createElement(
|
|
@@ -5375,7 +5371,7 @@ var UniversalHome2 = ({
|
|
|
5375
5371
|
},
|
|
5376
5372
|
/* @__PURE__ */ import_react87.default.createElement(import_react88.HugeiconsIcon, { icon: import_core_free_icons32.Logout01Icon, size: 15 }),
|
|
5377
5373
|
"Log Out"
|
|
5378
|
-
)))), showNotifDialog && /* @__PURE__ */ import_react87.default.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ import_react87.default.createElement("div", { className: "absolute inset-0 bg-black/30", onClick: () => setShowNotifDialog(false) }), /* @__PURE__ */ import_react87.default.createElement("div", { className: "relative w-full max-w-sm bg-white rounded-2xl flex flex-col overflow-hidden shadow-2xl animate-in zoom-in-95 duration-200 max-h-[80vh] h-auto" }, /* @__PURE__ */ import_react87.default.createElement("div", { className: "flex items-center justify-between p-5 shrink-0" }, selectedNotif ? /* @__PURE__ */ import_react87.default.createElement("button", { onClick: () => setSelectedNotif(null), disabled: isResolving, className: "text-[#d97757] hover:text-[#d97757] transition-colors outline-none flex items-center gap-2 text-xs tracking-widest disabled:opacity-50" }, /* @__PURE__ */ import_react87.default.createElement(import_react88.HugeiconsIcon, { icon: import_core_free_icons32.ArrowLeft01Icon, size: 14 }), " Back") : /* @__PURE__ */ import_react87.default.createElement("h3", { className: "text-sm text-black tracking-tight flex items-center gap-2" }, "Notifications"), /* @__PURE__ */ import_react87.default.createElement("button", { onClick: () => setShowNotifDialog(false), disabled: isResolving, className: "text-stone-400 hover:text-black transition-colors outline-none disabled:opacity-50" }, /* @__PURE__ */ import_react87.default.createElement(import_react88.HugeiconsIcon, { icon: import_core_free_icons32.CancelCircleIcon, size: 18 }))), /* @__PURE__ */ import_react87.default.createElement("div", { className: "flex-1 overflow-y-auto custom-scrollbar p-2 relative" }, isNotifsLoading && !selectedNotif && /* @__PURE__ */ import_react87.default.createElement("div", { className: "absolute inset-0 z-10 flex items-center justify-center" }, /* @__PURE__ */ import_react87.default.createElement(import_react88.HugeiconsIcon, { icon: import_core_free_icons32.Loading03Icon, size: 28, className: "animate-spin text-black" })), selectedNotif ? /* @__PURE__ */ import_react87.default.createElement("div", { className: "p-4 text-left" }, selectedNotif.type === "HUDDLE_INVITE" && selectedNotif.meta_json?.action === "RESOLVE_INVITE" && selectedNotif.meta_json?.completed ? /* @__PURE__ */ import_react87.default.createElement("div", { className: "
|
|
5374
|
+
)))), showNotifDialog && /* @__PURE__ */ import_react87.default.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ import_react87.default.createElement("div", { className: "absolute inset-0 bg-black/30", onClick: () => setShowNotifDialog(false) }), /* @__PURE__ */ import_react87.default.createElement("div", { className: "relative w-full max-w-sm bg-white rounded-2xl flex flex-col overflow-hidden shadow-2xl animate-in zoom-in-95 duration-200 max-h-[80vh] h-auto" }, /* @__PURE__ */ import_react87.default.createElement("div", { className: "flex items-center justify-between p-5 shrink-0" }, selectedNotif ? /* @__PURE__ */ import_react87.default.createElement("button", { onClick: () => setSelectedNotif(null), disabled: isResolving, className: "text-[#d97757] hover:text-[#d97757] transition-colors outline-none flex items-center gap-2 text-xs tracking-widest disabled:opacity-50" }, /* @__PURE__ */ import_react87.default.createElement(import_react88.HugeiconsIcon, { icon: import_core_free_icons32.ArrowLeft01Icon, size: 14 }), " Back") : /* @__PURE__ */ import_react87.default.createElement("h3", { className: "text-sm text-black tracking-tight flex items-center gap-2" }, "Notifications"), /* @__PURE__ */ import_react87.default.createElement("button", { onClick: () => setShowNotifDialog(false), disabled: isResolving, className: "text-stone-400 hover:text-black transition-colors outline-none disabled:opacity-50" }, /* @__PURE__ */ import_react87.default.createElement(import_react88.HugeiconsIcon, { icon: import_core_free_icons32.CancelCircleIcon, size: 18 }))), /* @__PURE__ */ import_react87.default.createElement("div", { className: "flex-1 overflow-y-auto custom-scrollbar p-2 relative" }, isNotifsLoading && !selectedNotif && /* @__PURE__ */ import_react87.default.createElement("div", { className: "absolute inset-0 z-10 flex items-center justify-center" }, /* @__PURE__ */ import_react87.default.createElement(import_react88.HugeiconsIcon, { icon: import_core_free_icons32.Loading03Icon, size: 28, className: "animate-spin text-black" })), selectedNotif ? /* @__PURE__ */ import_react87.default.createElement("div", { className: "p-4 text-left" }, selectedNotif.type === "HUDDLE_INVITE" && selectedNotif.meta_json?.action === "RESOLVE_INVITE" && selectedNotif.meta_json?.completed ? /* @__PURE__ */ import_react87.default.createElement("div", { className: "" }) : /* @__PURE__ */ import_react87.default.createElement("h4", { className: "text-sm text-black mb-1" }, selectedNotif.title), /* @__PURE__ */ import_react87.default.createElement("span", { className: "text-xs text-stone-400 tracking-widest mb-4 block" }, formatNotifDate(selectedNotif.createdAt)), /* @__PURE__ */ import_react87.default.createElement("p", { className: "text-xs text-stone-600 leading-relaxed whitespace-pre-wrap" }, selectedNotif.message), selectedNotif.type === "HUDDLE_INVITE" && selectedNotif.meta_json?.action === "RESOLVE_INVITE" && /* @__PURE__ */ import_react87.default.createElement("div", { className: `mt-8 flex gap-3 pt-6 ${selectedNotif.meta_json?.completed ? "opacity-40 pointer-events-none cursor-not-allowed" : ""}` }, /* @__PURE__ */ import_react87.default.createElement(
|
|
5379
5375
|
"button",
|
|
5380
5376
|
{
|
|
5381
5377
|
onClick: () => handleResolve("ACCEPTED"),
|
|
@@ -6024,11 +6020,7 @@ var import_react94 = require("@hugeicons/react");
|
|
|
6024
6020
|
var import_core_free_icons35 = require("@hugeicons/core-free-icons");
|
|
6025
6021
|
var MONTHS2 = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
|
|
6026
6022
|
var DAYS_OF_WEEK2 = ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"];
|
|
6027
|
-
var HuddleAvatar2 = ({
|
|
6028
|
-
const [loaded, setLoaded] = (0, import_react93.useState)(false);
|
|
6029
|
-
const [error, setError] = (0, import_react93.useState)(false);
|
|
6030
|
-
const defaultAvatar = "https://storage.googleapis.com/retina-cloud-v2/assets/images/default_a.avif";
|
|
6031
|
-
const finalSrc = error || !src ? defaultAvatar : src;
|
|
6023
|
+
var HuddleAvatar2 = ({ timeString, status, sizeClass = "w-10 h-10" }) => {
|
|
6032
6024
|
const getStatusColor = () => {
|
|
6033
6025
|
switch (status?.toUpperCase()) {
|
|
6034
6026
|
case "SCHEDULED":
|
|
@@ -6043,16 +6035,16 @@ var HuddleAvatar2 = ({ src, status, sizeClass = "w-10 h-10" }) => {
|
|
|
6043
6035
|
return "bg-stone-200";
|
|
6044
6036
|
}
|
|
6045
6037
|
};
|
|
6046
|
-
|
|
6047
|
-
|
|
6048
|
-
|
|
6049
|
-
|
|
6050
|
-
|
|
6051
|
-
|
|
6052
|
-
|
|
6053
|
-
onError: () => setError(true)
|
|
6038
|
+
let day = "--";
|
|
6039
|
+
let month = "---";
|
|
6040
|
+
if (timeString) {
|
|
6041
|
+
const parts = timeString.split(" ");
|
|
6042
|
+
if (parts.length >= 2) {
|
|
6043
|
+
day = parts[0];
|
|
6044
|
+
month = parts[1].substring(0, 3).toUpperCase();
|
|
6054
6045
|
}
|
|
6055
|
-
|
|
6046
|
+
}
|
|
6047
|
+
return /* @__PURE__ */ import_react93.default.createElement("div", { className: `relative shrink-0 ${sizeClass}` }, /* @__PURE__ */ import_react93.default.createElement("div", { className: "w-full h-full rounded-lg bg-white border border-stone-200 flex flex-col items-center justify-center overflow-hidden" }, /* @__PURE__ */ import_react93.default.createElement("span", { className: "text-[9px] tracking-wider leading-tight", style: { color: "#d97757" } }, month), /* @__PURE__ */ import_react93.default.createElement("span", { className: "text-sm text-black leading-tight" }, day)), /* @__PURE__ */ import_react93.default.createElement("div", { className: `absolute -bottom-1 -right-1 w-3.5 h-3.5 rounded-full border-2 border-white z-10 ${getStatusColor()}` }));
|
|
6056
6048
|
};
|
|
6057
6049
|
var HomeHuddleCalendar = ({
|
|
6058
6050
|
huddles = [],
|
|
@@ -6172,7 +6164,7 @@ var HomeHuddleCalendar = ({
|
|
|
6172
6164
|
onClick: () => router.push(`/app/huddles/${huddle.id}`),
|
|
6173
6165
|
className: "flex flex-row items-center gap-4 py-3 hover:bg-stone-50 transition-colors cursor-pointer group min-w-0 px-3 -mx-3 rounded-xl"
|
|
6174
6166
|
},
|
|
6175
|
-
/* @__PURE__ */ import_react93.default.createElement(HuddleAvatar2, {
|
|
6167
|
+
/* @__PURE__ */ import_react93.default.createElement(HuddleAvatar2, { timeString: huddle.timeString, status: huddle.status }),
|
|
6176
6168
|
/* @__PURE__ */ import_react93.default.createElement("div", { className: "flex flex-col min-w-0 flex-1" }, /* @__PURE__ */ import_react93.default.createElement("p", { className: "text-sm text-black tracking-tight truncate" }, huddle.name), /* @__PURE__ */ import_react93.default.createElement("span", { className: "text-[11px] text-stone-500 truncate block mt-1 tracking-wide" }, isSearching ? huddle.timeString : huddle.timeString.split("|")[1]?.trim() || huddle.timeString)),
|
|
6177
6169
|
/* @__PURE__ */ import_react93.default.createElement(import_react94.HugeiconsIcon, { icon: import_core_free_icons35.ArrowRight01Icon, size: 14, className: "shrink-0 text-stone-400 group-hover:text-black transition-colors" })
|
|
6178
6170
|
)))), huddles.length > 0 && !isLoading && /* @__PURE__ */ import_react93.default.createElement("div", { className: "flex items-center justify-between pt-6 mt-4 mb-2" }, /* @__PURE__ */ import_react93.default.createElement("span", { className: "text-[10px] text-stone-400 tracking-widest uppercase" }, "Page ", currentPage, " of ", totalPages === 0 ? 1 : totalPages), /* @__PURE__ */ import_react93.default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ import_react93.default.createElement(
|
package/dist/index.mjs
CHANGED
|
@@ -4887,18 +4887,14 @@ var UniversalBuyCryptoPage = ({
|
|
|
4887
4887
|
};
|
|
4888
4888
|
|
|
4889
4889
|
// src/components/UniversalHuddlesPage.tsx
|
|
4890
|
-
import React49
|
|
4890
|
+
import React49 from "react";
|
|
4891
4891
|
import { HugeiconsIcon as HugeiconsIcon35 } from "@hugeicons/react";
|
|
4892
4892
|
import {
|
|
4893
4893
|
ArrowLeft01Icon as ArrowLeft01Icon15,
|
|
4894
4894
|
ArrowRight01Icon as ArrowRight01Icon10,
|
|
4895
4895
|
Loading03Icon as Loading03Icon22
|
|
4896
4896
|
} from "@hugeicons/core-free-icons";
|
|
4897
|
-
var HuddleAvatar = ({
|
|
4898
|
-
const [loaded, setLoaded] = useState35(false);
|
|
4899
|
-
const [error, setError] = useState35(false);
|
|
4900
|
-
const defaultAvatar = "https://storage.googleapis.com/retina-cloud-v2/assets/images/default_a.avif";
|
|
4901
|
-
const finalSrc = error || !src ? defaultAvatar : src;
|
|
4897
|
+
var HuddleAvatar = ({ timeString, status, sizeClass = "w-10 h-10" }) => {
|
|
4902
4898
|
const getStatusColor = () => {
|
|
4903
4899
|
switch (status?.toUpperCase()) {
|
|
4904
4900
|
case "SCHEDULED":
|
|
@@ -4913,16 +4909,16 @@ var HuddleAvatar = ({ src, status, sizeClass = "w-10 h-10" }) => {
|
|
|
4913
4909
|
return "bg-stone-200";
|
|
4914
4910
|
}
|
|
4915
4911
|
};
|
|
4916
|
-
|
|
4917
|
-
|
|
4918
|
-
|
|
4919
|
-
|
|
4920
|
-
|
|
4921
|
-
|
|
4922
|
-
|
|
4923
|
-
onError: () => setError(true)
|
|
4912
|
+
let day = "--";
|
|
4913
|
+
let month = "---";
|
|
4914
|
+
if (timeString) {
|
|
4915
|
+
const parts = timeString.split(" ");
|
|
4916
|
+
if (parts.length >= 2) {
|
|
4917
|
+
day = parts[0];
|
|
4918
|
+
month = parts[1].substring(0, 3).toUpperCase();
|
|
4924
4919
|
}
|
|
4925
|
-
|
|
4920
|
+
}
|
|
4921
|
+
return /* @__PURE__ */ React49.createElement("div", { className: `relative shrink-0 ${sizeClass}` }, /* @__PURE__ */ React49.createElement("div", { className: "w-full h-full rounded-lg bg-white border border-stone-200 flex flex-col items-center justify-center overflow-hidden" }, /* @__PURE__ */ React49.createElement("span", { className: "text-[9px] f tracking-wider leading-tight", style: { color: "#d97757" } }, month), /* @__PURE__ */ React49.createElement("span", { className: "text-sm text-black leading-tight" }, day)), /* @__PURE__ */ React49.createElement("div", { className: `absolute -bottom-1 -right-1 w-3.5 h-3.5 rounded-full border-2 border-white z-10 ${getStatusColor()}` }));
|
|
4926
4922
|
};
|
|
4927
4923
|
var PageSpinner6 = () => /* @__PURE__ */ React49.createElement("div", { className: "flex justify-center items-center py-12" }, /* @__PURE__ */ React49.createElement(HugeiconsIcon35, { icon: Loading03Icon22, size: 32, className: "animate-spin mb-4 text-black" }));
|
|
4928
4924
|
var UniversalHuddlesPage = ({
|
|
@@ -4950,7 +4946,7 @@ var UniversalHuddlesPage = ({
|
|
|
4950
4946
|
onClick: () => onHuddleClick(huddle.id),
|
|
4951
4947
|
className: "flex flex-row items-center gap-4 py-2 hover:bg-stone-50 transition-colors cursor-pointer group min-w-0 px-3 -mx-3 rounded-xl"
|
|
4952
4948
|
},
|
|
4953
|
-
/* @__PURE__ */ React49.createElement(HuddleAvatar, {
|
|
4949
|
+
/* @__PURE__ */ React49.createElement(HuddleAvatar, { timeString: huddle.timeString, status: huddle.status }),
|
|
4954
4950
|
/* @__PURE__ */ React49.createElement("div", { className: "flex flex-col min-w-0 flex-1" }, /* @__PURE__ */ React49.createElement("p", { className: "text-sm text-black tracking-tight truncate" }, huddle.name), /* @__PURE__ */ React49.createElement("span", { className: "text-xs text-stone-500 truncate block mt-0.5" }, huddle.timeString)),
|
|
4955
4951
|
/* @__PURE__ */ React49.createElement(HugeiconsIcon35, { icon: ArrowRight01Icon10, size: 14, className: "shrink-0 text-stone-400" })
|
|
4956
4952
|
))), /* @__PURE__ */ React49.createElement("div", { className: "flex items-center justify-between pt-6 mt-2 " }, /* @__PURE__ */ React49.createElement("span", { className: "text-xs text-stone-400 tracking-[0.2em]" }, "Page ", currentPage, " of ", totalPages === 0 ? 1 : totalPages), /* @__PURE__ */ React49.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React49.createElement(
|
|
@@ -4973,7 +4969,7 @@ var UniversalHuddlesPage = ({
|
|
|
4973
4969
|
};
|
|
4974
4970
|
|
|
4975
4971
|
// src/components/UniversalMembersPage.tsx
|
|
4976
|
-
import React50, { useState as
|
|
4972
|
+
import React50, { useState as useState35, useEffect as useEffect20, useRef as useRef13 } from "react";
|
|
4977
4973
|
import { HugeiconsIcon as HugeiconsIcon36 } from "@hugeicons/react";
|
|
4978
4974
|
import toast12 from "react-hot-toast";
|
|
4979
4975
|
import {
|
|
@@ -4985,8 +4981,8 @@ import {
|
|
|
4985
4981
|
ListSettingIcon as ListSettingIcon2
|
|
4986
4982
|
} from "@hugeicons/core-free-icons";
|
|
4987
4983
|
var MemberAvatar2 = ({ src, status }) => {
|
|
4988
|
-
const [loaded, setLoaded] =
|
|
4989
|
-
const [error, setError] =
|
|
4984
|
+
const [loaded, setLoaded] = useState35(false);
|
|
4985
|
+
const [error, setError] = useState35(false);
|
|
4990
4986
|
const defaultAvatar = "https://storage.googleapis.com/retina-cloud-v2/assets/images/avatar.avif";
|
|
4991
4987
|
const finalSrc = error || !src ? defaultAvatar : src;
|
|
4992
4988
|
const getStatusColor = () => {
|
|
@@ -5034,16 +5030,16 @@ var UniversalMembersPage = ({
|
|
|
5034
5030
|
onRemoveMember,
|
|
5035
5031
|
onInviteMember
|
|
5036
5032
|
}) => {
|
|
5037
|
-
const [expandedId, setExpandedId] =
|
|
5038
|
-
const [memberToRemove, setMemberToRemove] =
|
|
5039
|
-
const [isRemoving, setIsRemoving] =
|
|
5040
|
-
const [isInviteMode, setIsInviteMode] =
|
|
5041
|
-
const [inviteEmail, setInviteEmail] =
|
|
5042
|
-
const [isInviting, setIsInviting] =
|
|
5043
|
-
const [localSearchQuery, setLocalSearchQuery] =
|
|
5044
|
-
const [isTyping, setIsTyping] =
|
|
5045
|
-
const [isStatusModalOpen, setIsStatusModalOpen] =
|
|
5046
|
-
const [isRoleModalOpen, setIsRoleModalOpen] =
|
|
5033
|
+
const [expandedId, setExpandedId] = useState35(null);
|
|
5034
|
+
const [memberToRemove, setMemberToRemove] = useState35(null);
|
|
5035
|
+
const [isRemoving, setIsRemoving] = useState35(false);
|
|
5036
|
+
const [isInviteMode, setIsInviteMode] = useState35(false);
|
|
5037
|
+
const [inviteEmail, setInviteEmail] = useState35("");
|
|
5038
|
+
const [isInviting, setIsInviting] = useState35(false);
|
|
5039
|
+
const [localSearchQuery, setLocalSearchQuery] = useState35(searchQuery);
|
|
5040
|
+
const [isTyping, setIsTyping] = useState35(false);
|
|
5041
|
+
const [isStatusModalOpen, setIsStatusModalOpen] = useState35(false);
|
|
5042
|
+
const [isRoleModalOpen, setIsRoleModalOpen] = useState35(false);
|
|
5047
5043
|
const statusDropdownRef = useRef13(null);
|
|
5048
5044
|
const roleDropdownRef = useRef13(null);
|
|
5049
5045
|
const cleanEmailId = (val) => val.toLowerCase().replace(/[^a-z0-9@._-]/g, "");
|
|
@@ -5239,7 +5235,7 @@ var UniversalMembersPage = ({
|
|
|
5239
5235
|
};
|
|
5240
5236
|
|
|
5241
5237
|
// src/components/UniversalHome2.tsx
|
|
5242
|
-
import React51, { useState as
|
|
5238
|
+
import React51, { useState as useState36 } from "react";
|
|
5243
5239
|
import { useRouter as useRouter3 } from "next/navigation";
|
|
5244
5240
|
import { HugeiconsIcon as HugeiconsIcon37 } from "@hugeicons/react";
|
|
5245
5241
|
import toast13 from "react-hot-toast";
|
|
@@ -5251,12 +5247,11 @@ import {
|
|
|
5251
5247
|
CancelCircleIcon as CancelCircleIcon13,
|
|
5252
5248
|
ArrowUpRight01Icon as ArrowUpRight01Icon3,
|
|
5253
5249
|
Robot01Icon,
|
|
5254
|
-
Logout01Icon
|
|
5255
|
-
Tick02Icon as Tick02Icon2
|
|
5250
|
+
Logout01Icon
|
|
5256
5251
|
} from "@hugeicons/core-free-icons";
|
|
5257
5252
|
var OrgAvatar = ({ src, sizeClass = "w-10 h-10" }) => {
|
|
5258
|
-
const [loaded, setLoaded] =
|
|
5259
|
-
const [error, setError] =
|
|
5253
|
+
const [loaded, setLoaded] = useState36(false);
|
|
5254
|
+
const [error, setError] = useState36(false);
|
|
5260
5255
|
const defaultAvatar = "https://storage.googleapis.com/retina-cloud-v2/assets/images/office_a.avif";
|
|
5261
5256
|
const finalSrc = error || !src ? defaultAvatar : src;
|
|
5262
5257
|
return /* @__PURE__ */ React51.createElement("div", { className: `relative shrink-0 ${sizeClass}` }, /* @__PURE__ */ React51.createElement("div", { className: "w-full h-full rounded-lg bg-stone-100 flex items-center justify-center overflow-hidden" }, !loaded && !error && /* @__PURE__ */ React51.createElement(HugeiconsIcon37, { icon: Loading03Icon24, className: "animate-spin text-stone-400 absolute", size: 14 }), /* @__PURE__ */ React51.createElement(
|
|
@@ -5289,13 +5284,13 @@ var UniversalHome2 = ({
|
|
|
5289
5284
|
huddlesProps,
|
|
5290
5285
|
onLogout
|
|
5291
5286
|
}) => {
|
|
5292
|
-
const [isAvatarLoaded, setIsAvatarLoaded] =
|
|
5293
|
-
const [showNotifDialog, setShowNotifDialog] =
|
|
5294
|
-
const [showOrgSwitcher, setShowOrgSwitcher] =
|
|
5295
|
-
const [selectedNotif, setSelectedNotif] =
|
|
5296
|
-
const [isResolving, setIsResolving] =
|
|
5297
|
-
const [showLogoutConfirm, setShowLogoutConfirm] =
|
|
5298
|
-
const [isLoggingOut, setIsLoggingOut] =
|
|
5287
|
+
const [isAvatarLoaded, setIsAvatarLoaded] = useState36(false);
|
|
5288
|
+
const [showNotifDialog, setShowNotifDialog] = useState36(false);
|
|
5289
|
+
const [showOrgSwitcher, setShowOrgSwitcher] = useState36(false);
|
|
5290
|
+
const [selectedNotif, setSelectedNotif] = useState36(null);
|
|
5291
|
+
const [isResolving, setIsResolving] = useState36(false);
|
|
5292
|
+
const [showLogoutConfirm, setShowLogoutConfirm] = useState36(false);
|
|
5293
|
+
const [isLoggingOut, setIsLoggingOut] = useState36(false);
|
|
5299
5294
|
const router = useRouter3();
|
|
5300
5295
|
const fallbackAvatarUrl = "https://storage.googleapis.com/retina-cloud-v2/assets/images/avatar.avif";
|
|
5301
5296
|
const finalAvatarSrc = avatarSrc || fallbackAvatarUrl;
|
|
@@ -5420,7 +5415,7 @@ var UniversalHome2 = ({
|
|
|
5420
5415
|
},
|
|
5421
5416
|
/* @__PURE__ */ React51.createElement(HugeiconsIcon37, { icon: Logout01Icon, size: 15 }),
|
|
5422
5417
|
"Log Out"
|
|
5423
|
-
)))), showNotifDialog && /* @__PURE__ */ React51.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ React51.createElement("div", { className: "absolute inset-0 bg-black/30", onClick: () => setShowNotifDialog(false) }), /* @__PURE__ */ React51.createElement("div", { className: "relative w-full max-w-sm bg-white rounded-2xl flex flex-col overflow-hidden shadow-2xl animate-in zoom-in-95 duration-200 max-h-[80vh] h-auto" }, /* @__PURE__ */ React51.createElement("div", { className: "flex items-center justify-between p-5 shrink-0" }, selectedNotif ? /* @__PURE__ */ React51.createElement("button", { onClick: () => setSelectedNotif(null), disabled: isResolving, className: "text-[#d97757] hover:text-[#d97757] transition-colors outline-none flex items-center gap-2 text-xs tracking-widest disabled:opacity-50" }, /* @__PURE__ */ React51.createElement(HugeiconsIcon37, { icon: ArrowLeft01Icon17, size: 14 }), " Back") : /* @__PURE__ */ React51.createElement("h3", { className: "text-sm text-black tracking-tight flex items-center gap-2" }, "Notifications"), /* @__PURE__ */ React51.createElement("button", { onClick: () => setShowNotifDialog(false), disabled: isResolving, className: "text-stone-400 hover:text-black transition-colors outline-none disabled:opacity-50" }, /* @__PURE__ */ React51.createElement(HugeiconsIcon37, { icon: CancelCircleIcon13, size: 18 }))), /* @__PURE__ */ React51.createElement("div", { className: "flex-1 overflow-y-auto custom-scrollbar p-2 relative" }, isNotifsLoading && !selectedNotif && /* @__PURE__ */ React51.createElement("div", { className: "absolute inset-0 z-10 flex items-center justify-center" }, /* @__PURE__ */ React51.createElement(HugeiconsIcon37, { icon: Loading03Icon24, size: 28, className: "animate-spin text-black" })), selectedNotif ? /* @__PURE__ */ React51.createElement("div", { className: "p-4 text-left" }, selectedNotif.type === "HUDDLE_INVITE" && selectedNotif.meta_json?.action === "RESOLVE_INVITE" && selectedNotif.meta_json?.completed ? /* @__PURE__ */ React51.createElement("div", { className: "
|
|
5418
|
+
)))), showNotifDialog && /* @__PURE__ */ React51.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ React51.createElement("div", { className: "absolute inset-0 bg-black/30", onClick: () => setShowNotifDialog(false) }), /* @__PURE__ */ React51.createElement("div", { className: "relative w-full max-w-sm bg-white rounded-2xl flex flex-col overflow-hidden shadow-2xl animate-in zoom-in-95 duration-200 max-h-[80vh] h-auto" }, /* @__PURE__ */ React51.createElement("div", { className: "flex items-center justify-between p-5 shrink-0" }, selectedNotif ? /* @__PURE__ */ React51.createElement("button", { onClick: () => setSelectedNotif(null), disabled: isResolving, className: "text-[#d97757] hover:text-[#d97757] transition-colors outline-none flex items-center gap-2 text-xs tracking-widest disabled:opacity-50" }, /* @__PURE__ */ React51.createElement(HugeiconsIcon37, { icon: ArrowLeft01Icon17, size: 14 }), " Back") : /* @__PURE__ */ React51.createElement("h3", { className: "text-sm text-black tracking-tight flex items-center gap-2" }, "Notifications"), /* @__PURE__ */ React51.createElement("button", { onClick: () => setShowNotifDialog(false), disabled: isResolving, className: "text-stone-400 hover:text-black transition-colors outline-none disabled:opacity-50" }, /* @__PURE__ */ React51.createElement(HugeiconsIcon37, { icon: CancelCircleIcon13, size: 18 }))), /* @__PURE__ */ React51.createElement("div", { className: "flex-1 overflow-y-auto custom-scrollbar p-2 relative" }, isNotifsLoading && !selectedNotif && /* @__PURE__ */ React51.createElement("div", { className: "absolute inset-0 z-10 flex items-center justify-center" }, /* @__PURE__ */ React51.createElement(HugeiconsIcon37, { icon: Loading03Icon24, size: 28, className: "animate-spin text-black" })), selectedNotif ? /* @__PURE__ */ React51.createElement("div", { className: "p-4 text-left" }, selectedNotif.type === "HUDDLE_INVITE" && selectedNotif.meta_json?.action === "RESOLVE_INVITE" && selectedNotif.meta_json?.completed ? /* @__PURE__ */ React51.createElement("div", { className: "" }) : /* @__PURE__ */ React51.createElement("h4", { className: "text-sm text-black mb-1" }, selectedNotif.title), /* @__PURE__ */ React51.createElement("span", { className: "text-xs text-stone-400 tracking-widest mb-4 block" }, formatNotifDate(selectedNotif.createdAt)), /* @__PURE__ */ React51.createElement("p", { className: "text-xs text-stone-600 leading-relaxed whitespace-pre-wrap" }, selectedNotif.message), selectedNotif.type === "HUDDLE_INVITE" && selectedNotif.meta_json?.action === "RESOLVE_INVITE" && /* @__PURE__ */ React51.createElement("div", { className: `mt-8 flex gap-3 pt-6 ${selectedNotif.meta_json?.completed ? "opacity-40 pointer-events-none cursor-not-allowed" : ""}` }, /* @__PURE__ */ React51.createElement(
|
|
5424
5419
|
"button",
|
|
5425
5420
|
{
|
|
5426
5421
|
onClick: () => handleResolve("ACCEPTED"),
|
|
@@ -5468,7 +5463,7 @@ var UniversalHome2 = ({
|
|
|
5468
5463
|
};
|
|
5469
5464
|
|
|
5470
5465
|
// src/components/UniversalSettings.tsx
|
|
5471
|
-
import React52, { useState as
|
|
5466
|
+
import React52, { useState as useState37, useEffect as useEffect21, useRef as useRef14 } from "react";
|
|
5472
5467
|
import toast14 from "react-hot-toast";
|
|
5473
5468
|
import { HugeiconsIcon as HugeiconsIcon38 } from "@hugeicons/react";
|
|
5474
5469
|
import {
|
|
@@ -5484,8 +5479,8 @@ import {
|
|
|
5484
5479
|
CloudUploadIcon
|
|
5485
5480
|
} from "@hugeicons/core-free-icons";
|
|
5486
5481
|
var MemberAvatar3 = ({ src, status, sizeClass = "w-10 h-10" }) => {
|
|
5487
|
-
const [loaded, setLoaded] =
|
|
5488
|
-
const [error, setError] =
|
|
5482
|
+
const [loaded, setLoaded] = useState37(false);
|
|
5483
|
+
const [error, setError] = useState37(false);
|
|
5489
5484
|
const defaultAvatar = "https://storage.googleapis.com/retina-cloud-v2/assets/images/avatar.avif";
|
|
5490
5485
|
const finalSrc = error || !src ? defaultAvatar : src;
|
|
5491
5486
|
const getStatusColor = () => {
|
|
@@ -5505,8 +5500,8 @@ var MemberAvatar3 = ({ src, status, sizeClass = "w-10 h-10" }) => {
|
|
|
5505
5500
|
return /* @__PURE__ */ React52.createElement("div", { className: `relative shrink-0 ${sizeClass}` }, /* @__PURE__ */ React52.createElement("div", { className: "w-full h-full rounded-lg bg-stone-100 flex items-center justify-center overflow-hidden" }, !loaded && !error && /* @__PURE__ */ React52.createElement(HugeiconsIcon38, { icon: Loading03Icon25, className: "animate-spin text-stone-400 absolute", size: 14 }), /* @__PURE__ */ React52.createElement("img", { src: finalSrc, alt: "Member", className: `w-full h-full object-cover transition-opacity duration-300 ${loaded || error ? "opacity-100" : "opacity-0"}`, onLoad: () => setLoaded(true), onError: () => setError(true) })), /* @__PURE__ */ React52.createElement("div", { className: `absolute -bottom-1 -right-1 w-3.5 h-3.5 rounded-full border-2 border-white z-10 ${getStatusColor()}` }));
|
|
5506
5501
|
};
|
|
5507
5502
|
var OrgAvatar2 = ({ src, sizeClass = "w-10 h-10" }) => {
|
|
5508
|
-
const [loaded, setLoaded] =
|
|
5509
|
-
const [error, setError] =
|
|
5503
|
+
const [loaded, setLoaded] = useState37(false);
|
|
5504
|
+
const [error, setError] = useState37(false);
|
|
5510
5505
|
const defaultAvatar = "https://storage.googleapis.com/retina-cloud-v2/assets/images/office_a.avif";
|
|
5511
5506
|
const finalSrc = error || !src ? defaultAvatar : src;
|
|
5512
5507
|
return /* @__PURE__ */ React52.createElement("div", { className: `relative shrink-0 ${sizeClass}` }, /* @__PURE__ */ React52.createElement("div", { className: "w-full h-full rounded-lg bg-stone-100 flex items-center justify-center overflow-hidden" }, !loaded && !error && /* @__PURE__ */ React52.createElement(HugeiconsIcon38, { icon: Loading03Icon25, className: "animate-spin text-stone-400 absolute", size: 14 }), /* @__PURE__ */ React52.createElement(
|
|
@@ -5566,38 +5561,38 @@ var UniversalSettings = ({
|
|
|
5566
5561
|
const isOrg = accountType === "ORGANIZATION";
|
|
5567
5562
|
const safeRole = String(userRole || "").toUpperCase().trim();
|
|
5568
5563
|
const canManage = ["ADMIN", "MANAGER", "OWNER"].includes(safeRole);
|
|
5569
|
-
const [activeTab, setActiveTab] =
|
|
5570
|
-
const [expandedId, setExpandedId] =
|
|
5571
|
-
const [memberToRemove, setMemberToRemove] =
|
|
5572
|
-
const [isRemoving, setIsRemoving] =
|
|
5573
|
-
const [isInviteMode, setIsInviteMode] =
|
|
5574
|
-
const [inviteEmail, setInviteEmail] =
|
|
5575
|
-
const [isInviting, setIsInviting] =
|
|
5576
|
-
const [localSearchQuery, setLocalSearchQuery] =
|
|
5577
|
-
const [isTyping, setIsTyping] =
|
|
5564
|
+
const [activeTab, setActiveTab] = useState37(isOrg ? "MEMBERS" : "ACCOUNT");
|
|
5565
|
+
const [expandedId, setExpandedId] = useState37(null);
|
|
5566
|
+
const [memberToRemove, setMemberToRemove] = useState37(null);
|
|
5567
|
+
const [isRemoving, setIsRemoving] = useState37(false);
|
|
5568
|
+
const [isInviteMode, setIsInviteMode] = useState37(false);
|
|
5569
|
+
const [inviteEmail, setInviteEmail] = useState37("");
|
|
5570
|
+
const [isInviting, setIsInviting] = useState37(false);
|
|
5571
|
+
const [localSearchQuery, setLocalSearchQuery] = useState37(membersSearchQuery);
|
|
5572
|
+
const [isTyping, setIsTyping] = useState37(false);
|
|
5578
5573
|
const isFirstSearchMount = useRef14(true);
|
|
5579
|
-
const [isStatusModalOpen, setIsStatusModalOpen] =
|
|
5580
|
-
const [isRoleModalOpen, setIsRoleModalOpen] =
|
|
5581
|
-
const [roleEditTarget, setRoleEditTarget] =
|
|
5582
|
-
const [isUpdatingRole, setIsUpdatingRole] =
|
|
5583
|
-
const [orgName, setOrgName] =
|
|
5584
|
-
const [orgSlug, setOrgSlug] =
|
|
5585
|
-
const [orgAvatarUrl, setOrgAvatarUrl] =
|
|
5586
|
-
const [firstName, setFirstName] =
|
|
5587
|
-
const [lastName, setLastName] =
|
|
5588
|
-
const [jobTitle, setJobTitle] =
|
|
5589
|
-
const [description, setDescription] =
|
|
5590
|
-
const [avatarUrl, setAvatarUrl] =
|
|
5591
|
-
const [isCheckingSlug, setIsCheckingSlug] =
|
|
5592
|
-
const [slugAvailable, setSlugAvailable] =
|
|
5593
|
-
const [isSavingOrg, setIsSavingOrg] =
|
|
5594
|
-
const [isSavingProfile, setIsSavingProfile] =
|
|
5574
|
+
const [isStatusModalOpen, setIsStatusModalOpen] = useState37(false);
|
|
5575
|
+
const [isRoleModalOpen, setIsRoleModalOpen] = useState37(false);
|
|
5576
|
+
const [roleEditTarget, setRoleEditTarget] = useState37(null);
|
|
5577
|
+
const [isUpdatingRole, setIsUpdatingRole] = useState37(false);
|
|
5578
|
+
const [orgName, setOrgName] = useState37(initialOrgName);
|
|
5579
|
+
const [orgSlug, setOrgSlug] = useState37(initialOrgSlug);
|
|
5580
|
+
const [orgAvatarUrl, setOrgAvatarUrl] = useState37(initialOrgAvatarUrl);
|
|
5581
|
+
const [firstName, setFirstName] = useState37("");
|
|
5582
|
+
const [lastName, setLastName] = useState37("");
|
|
5583
|
+
const [jobTitle, setJobTitle] = useState37(initialJobTitle);
|
|
5584
|
+
const [description, setDescription] = useState37(initialDescription);
|
|
5585
|
+
const [avatarUrl, setAvatarUrl] = useState37(initialAvatarUrl);
|
|
5586
|
+
const [isCheckingSlug, setIsCheckingSlug] = useState37(false);
|
|
5587
|
+
const [slugAvailable, setSlugAvailable] = useState37(null);
|
|
5588
|
+
const [isSavingOrg, setIsSavingOrg] = useState37(false);
|
|
5589
|
+
const [isSavingProfile, setIsSavingProfile] = useState37(false);
|
|
5595
5590
|
const orgFileInputRef = useRef14(null);
|
|
5596
5591
|
const userFileInputRef = useRef14(null);
|
|
5597
|
-
const [pendingOrgAvatar, setPendingOrgAvatar] =
|
|
5598
|
-
const [pendingUserAvatar, setPendingUserAvatar] =
|
|
5599
|
-
const [isUploadingOrgAvatar, setIsUploadingOrgAvatar] =
|
|
5600
|
-
const [isUploadingUserAvatar, setIsUploadingUserAvatar] =
|
|
5592
|
+
const [pendingOrgAvatar, setPendingOrgAvatar] = useState37(null);
|
|
5593
|
+
const [pendingUserAvatar, setPendingUserAvatar] = useState37(null);
|
|
5594
|
+
const [isUploadingOrgAvatar, setIsUploadingOrgAvatar] = useState37(false);
|
|
5595
|
+
const [isUploadingUserAvatar, setIsUploadingUserAvatar] = useState37(false);
|
|
5601
5596
|
useEffect21(() => {
|
|
5602
5597
|
setOrgName(initialOrgName || "");
|
|
5603
5598
|
setOrgSlug(initialOrgSlug || "");
|
|
@@ -5844,7 +5839,7 @@ var UniversalSettings = ({
|
|
|
5844
5839
|
};
|
|
5845
5840
|
|
|
5846
5841
|
// src/components/UniversalCreateHuddle.tsx
|
|
5847
|
-
import React53, { useState as
|
|
5842
|
+
import React53, { useState as useState38, useEffect as useEffect22, useRef as useRef15 } from "react";
|
|
5848
5843
|
import toast15 from "react-hot-toast";
|
|
5849
5844
|
import { HugeiconsIcon as HugeiconsIcon39 } from "@hugeicons/react";
|
|
5850
5845
|
import {
|
|
@@ -5859,8 +5854,8 @@ import {
|
|
|
5859
5854
|
CircleLock02Icon as CircleLock02Icon4
|
|
5860
5855
|
} from "@hugeicons/core-free-icons";
|
|
5861
5856
|
var MemberAvatar4 = ({ src, sizeClass = "w-10 h-10" }) => {
|
|
5862
|
-
const [loaded, setLoaded] =
|
|
5863
|
-
const [error, setError] =
|
|
5857
|
+
const [loaded, setLoaded] = useState38(false);
|
|
5858
|
+
const [error, setError] = useState38(false);
|
|
5864
5859
|
const defaultAvatar = "https://storage.googleapis.com/retina-cloud-v2/assets/images/avatar.avif";
|
|
5865
5860
|
return /* @__PURE__ */ React53.createElement("div", { className: `relative shrink-0 ${sizeClass}` }, /* @__PURE__ */ React53.createElement("div", { className: "w-full h-full rounded-lg bg-stone-100 flex items-center justify-center overflow-hidden" }, !loaded && !error && /* @__PURE__ */ React53.createElement(HugeiconsIcon39, { icon: Loading03Icon26, className: "animate-spin text-stone-400 absolute", size: 14 }), /* @__PURE__ */ React53.createElement(
|
|
5866
5861
|
"img",
|
|
@@ -5903,27 +5898,27 @@ var UniversalCreateHuddle = ({
|
|
|
5903
5898
|
onCreateSubmit
|
|
5904
5899
|
}) => {
|
|
5905
5900
|
const canManage = userRole === "ADMIN" || userRole === "MANAGER" || userRole === "OWNER";
|
|
5906
|
-
const [huddleDate, setHuddleDate] =
|
|
5901
|
+
const [huddleDate, setHuddleDate] = useState38(() => {
|
|
5907
5902
|
const d = /* @__PURE__ */ new Date();
|
|
5908
5903
|
d.setHours(d.getHours() + 1, 0, 0, 0);
|
|
5909
5904
|
return d;
|
|
5910
5905
|
});
|
|
5911
|
-
const [title, setTitle] =
|
|
5912
|
-
const [isPrivate, setIsPrivate] =
|
|
5913
|
-
const [timezone, setTimezone] =
|
|
5906
|
+
const [title, setTitle] = useState38("");
|
|
5907
|
+
const [isPrivate, setIsPrivate] = useState38(false);
|
|
5908
|
+
const [timezone, setTimezone] = useState38("UTC");
|
|
5914
5909
|
useEffect22(() => {
|
|
5915
5910
|
try {
|
|
5916
5911
|
setTimezone(Intl.DateTimeFormat().resolvedOptions().timeZone);
|
|
5917
5912
|
} catch (e) {
|
|
5918
5913
|
}
|
|
5919
5914
|
}, []);
|
|
5920
|
-
const [calendarMode, setCalendarMode] =
|
|
5921
|
-
const [showTimezoneModal, setShowTimezoneModal] =
|
|
5922
|
-
const [showMembersModal, setShowMembersModal] =
|
|
5923
|
-
const [selectedParticipants, setSelectedParticipants] =
|
|
5924
|
-
const [isSubmitting, setIsSubmitting] =
|
|
5925
|
-
const [localSearchQuery, setLocalSearchQuery] =
|
|
5926
|
-
const [isTyping, setIsTyping] =
|
|
5915
|
+
const [calendarMode, setCalendarMode] = useState38(null);
|
|
5916
|
+
const [showTimezoneModal, setShowTimezoneModal] = useState38(false);
|
|
5917
|
+
const [showMembersModal, setShowMembersModal] = useState38(false);
|
|
5918
|
+
const [selectedParticipants, setSelectedParticipants] = useState38(/* @__PURE__ */ new Set());
|
|
5919
|
+
const [isSubmitting, setIsSubmitting] = useState38(false);
|
|
5920
|
+
const [localSearchQuery, setLocalSearchQuery] = useState38(membersSearchQuery);
|
|
5921
|
+
const [isTyping, setIsTyping] = useState38(false);
|
|
5927
5922
|
const typingTimer = useRef15(null);
|
|
5928
5923
|
const handleSearchInput = (e) => {
|
|
5929
5924
|
const val = e.target.value;
|
|
@@ -6084,7 +6079,7 @@ var UniversalCreateHuddle = ({
|
|
|
6084
6079
|
};
|
|
6085
6080
|
|
|
6086
6081
|
// src/components/HomeHuddleCalendar.tsx
|
|
6087
|
-
import React54, { useState as
|
|
6082
|
+
import React54, { useState as useState39, useRef as useRef16, useEffect as useEffect23 } from "react";
|
|
6088
6083
|
import { useRouter as useRouter4 } from "next/navigation";
|
|
6089
6084
|
import { HugeiconsIcon as HugeiconsIcon40 } from "@hugeicons/react";
|
|
6090
6085
|
import {
|
|
@@ -6096,11 +6091,7 @@ import {
|
|
|
6096
6091
|
} from "@hugeicons/core-free-icons";
|
|
6097
6092
|
var MONTHS2 = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
|
|
6098
6093
|
var DAYS_OF_WEEK2 = ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"];
|
|
6099
|
-
var HuddleAvatar2 = ({
|
|
6100
|
-
const [loaded, setLoaded] = useState40(false);
|
|
6101
|
-
const [error, setError] = useState40(false);
|
|
6102
|
-
const defaultAvatar = "https://storage.googleapis.com/retina-cloud-v2/assets/images/default_a.avif";
|
|
6103
|
-
const finalSrc = error || !src ? defaultAvatar : src;
|
|
6094
|
+
var HuddleAvatar2 = ({ timeString, status, sizeClass = "w-10 h-10" }) => {
|
|
6104
6095
|
const getStatusColor = () => {
|
|
6105
6096
|
switch (status?.toUpperCase()) {
|
|
6106
6097
|
case "SCHEDULED":
|
|
@@ -6115,16 +6106,16 @@ var HuddleAvatar2 = ({ src, status, sizeClass = "w-10 h-10" }) => {
|
|
|
6115
6106
|
return "bg-stone-200";
|
|
6116
6107
|
}
|
|
6117
6108
|
};
|
|
6118
|
-
|
|
6119
|
-
|
|
6120
|
-
|
|
6121
|
-
|
|
6122
|
-
|
|
6123
|
-
|
|
6124
|
-
|
|
6125
|
-
onError: () => setError(true)
|
|
6109
|
+
let day = "--";
|
|
6110
|
+
let month = "---";
|
|
6111
|
+
if (timeString) {
|
|
6112
|
+
const parts = timeString.split(" ");
|
|
6113
|
+
if (parts.length >= 2) {
|
|
6114
|
+
day = parts[0];
|
|
6115
|
+
month = parts[1].substring(0, 3).toUpperCase();
|
|
6126
6116
|
}
|
|
6127
|
-
|
|
6117
|
+
}
|
|
6118
|
+
return /* @__PURE__ */ React54.createElement("div", { className: `relative shrink-0 ${sizeClass}` }, /* @__PURE__ */ React54.createElement("div", { className: "w-full h-full rounded-lg bg-white border border-stone-200 flex flex-col items-center justify-center overflow-hidden" }, /* @__PURE__ */ React54.createElement("span", { className: "text-[9px] tracking-wider leading-tight", style: { color: "#d97757" } }, month), /* @__PURE__ */ React54.createElement("span", { className: "text-sm text-black leading-tight" }, day)), /* @__PURE__ */ React54.createElement("div", { className: `absolute -bottom-1 -right-1 w-3.5 h-3.5 rounded-full border-2 border-white z-10 ${getStatusColor()}` }));
|
|
6128
6119
|
};
|
|
6129
6120
|
var HomeHuddleCalendar = ({
|
|
6130
6121
|
huddles = [],
|
|
@@ -6138,8 +6129,8 @@ var HomeHuddleCalendar = ({
|
|
|
6138
6129
|
onStatusFilterChange
|
|
6139
6130
|
}) => {
|
|
6140
6131
|
const router = useRouter4();
|
|
6141
|
-
const [localSearch, setLocalSearch] =
|
|
6142
|
-
const [isStatusModalOpen, setIsStatusModalOpen] =
|
|
6132
|
+
const [localSearch, setLocalSearch] = useState39(searchQuery);
|
|
6133
|
+
const [isStatusModalOpen, setIsStatusModalOpen] = useState39(false);
|
|
6143
6134
|
const typingTimer = useRef16(null);
|
|
6144
6135
|
const isSearching = localSearch.trim().length > 0;
|
|
6145
6136
|
useEffect23(() => {
|
|
@@ -6154,9 +6145,9 @@ var HomeHuddleCalendar = ({
|
|
|
6154
6145
|
}, 500);
|
|
6155
6146
|
};
|
|
6156
6147
|
const today = /* @__PURE__ */ new Date();
|
|
6157
|
-
const [viewMonth, setViewMonth] =
|
|
6158
|
-
const [viewYear, setViewYear] =
|
|
6159
|
-
const [selectedDate, setSelectedDate] =
|
|
6148
|
+
const [viewMonth, setViewMonth] = useState39(today.getMonth());
|
|
6149
|
+
const [viewYear, setViewYear] = useState39(today.getFullYear());
|
|
6150
|
+
const [selectedDate, setSelectedDate] = useState39(new Date(today.getFullYear(), today.getMonth(), today.getDate()));
|
|
6160
6151
|
const handlePrevMonth = () => {
|
|
6161
6152
|
if (viewMonth === 0) {
|
|
6162
6153
|
setViewMonth(11);
|
|
@@ -6244,7 +6235,7 @@ var HomeHuddleCalendar = ({
|
|
|
6244
6235
|
onClick: () => router.push(`/app/huddles/${huddle.id}`),
|
|
6245
6236
|
className: "flex flex-row items-center gap-4 py-3 hover:bg-stone-50 transition-colors cursor-pointer group min-w-0 px-3 -mx-3 rounded-xl"
|
|
6246
6237
|
},
|
|
6247
|
-
/* @__PURE__ */ React54.createElement(HuddleAvatar2, {
|
|
6238
|
+
/* @__PURE__ */ React54.createElement(HuddleAvatar2, { timeString: huddle.timeString, status: huddle.status }),
|
|
6248
6239
|
/* @__PURE__ */ React54.createElement("div", { className: "flex flex-col min-w-0 flex-1" }, /* @__PURE__ */ React54.createElement("p", { className: "text-sm text-black tracking-tight truncate" }, huddle.name), /* @__PURE__ */ React54.createElement("span", { className: "text-[11px] text-stone-500 truncate block mt-1 tracking-wide" }, isSearching ? huddle.timeString : huddle.timeString.split("|")[1]?.trim() || huddle.timeString)),
|
|
6249
6240
|
/* @__PURE__ */ React54.createElement(HugeiconsIcon40, { icon: ArrowRight01Icon15, size: 14, className: "shrink-0 text-stone-400 group-hover:text-black transition-colors" })
|
|
6250
6241
|
)))), huddles.length > 0 && !isLoading && /* @__PURE__ */ React54.createElement("div", { className: "flex items-center justify-between pt-6 mt-4 mb-2" }, /* @__PURE__ */ React54.createElement("span", { className: "text-[10px] text-stone-400 tracking-widest uppercase" }, "Page ", currentPage, " of ", totalPages === 0 ? 1 : totalPages), /* @__PURE__ */ React54.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React54.createElement(
|