@cometchat/skills-cli 2.4.1 → 3.0.0

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.
Files changed (111) hide show
  1. package/README.md +45 -37
  2. package/dist/index.js +1821 -13090
  3. package/dist/utils/error-dictionary.js +0 -69
  4. package/package.json +10 -12
  5. package/dist/registry/schemas/config.schema.json +0 -119
  6. package/dist/registry/schemas/template.schema.json +0 -142
  7. package/dist/registry/v6/experiences/1-conversation-list/astro.template.json +0 -89
  8. package/dist/registry/v6/experiences/1-conversation-list/nextjs-pages.template.json +0 -83
  9. package/dist/registry/v6/experiences/1-conversation-list/nextjs.template.json +0 -83
  10. package/dist/registry/v6/experiences/1-conversation-list/react-router.template.json +0 -102
  11. package/dist/registry/v6/experiences/1-conversation-list/reactjs-dedicated-route.template.json +0 -81
  12. package/dist/registry/v6/experiences/1-conversation-list/reactjs.template.json +0 -86
  13. package/dist/registry/v6/experiences/1-conversation-list/templates/astro/ChatApp.css.tpl +0 -43
  14. package/dist/registry/v6/experiences/1-conversation-list/templates/astro/ChatApp.tsx.tpl +0 -86
  15. package/dist/registry/v6/experiences/1-conversation-list/templates/astro/CometChatSelector.tsx.tpl +0 -40
  16. package/dist/registry/v6/experiences/1-conversation-list/templates/astro/chat.astro.tpl +0 -17
  17. package/dist/registry/v6/experiences/1-conversation-list/templates/nextjs/CometChatNoSSR.css.tpl +0 -43
  18. package/dist/registry/v6/experiences/1-conversation-list/templates/nextjs/CometChatNoSSR.tsx.tpl +0 -86
  19. package/dist/registry/v6/experiences/1-conversation-list/templates/nextjs/CometChatSelector.tsx.tpl +0 -41
  20. package/dist/registry/v6/experiences/1-conversation-list/templates/nextjs/chat-page.tsx.tpl +0 -11
  21. package/dist/registry/v6/experiences/1-conversation-list/templates/nextjs-pages/CometChatNoSSR.css.tpl +0 -43
  22. package/dist/registry/v6/experiences/1-conversation-list/templates/nextjs-pages/CometChatNoSSR.tsx.tpl +0 -88
  23. package/dist/registry/v6/experiences/1-conversation-list/templates/nextjs-pages/CometChatSelector.tsx.tpl +0 -41
  24. package/dist/registry/v6/experiences/1-conversation-list/templates/nextjs-pages/chat-page.tsx.tpl +0 -15
  25. package/dist/registry/v6/experiences/1-conversation-list/templates/react-router/CometChat-route.tsx.tpl +0 -22
  26. package/dist/registry/v6/experiences/1-conversation-list/templates/react-router/CometChatNoSSR.css.tpl +0 -43
  27. package/dist/registry/v6/experiences/1-conversation-list/templates/react-router/CometChatNoSSR.tsx.tpl +0 -87
  28. package/dist/registry/v6/experiences/1-conversation-list/templates/react-router/CometChatSelector.tsx.tpl +0 -40
  29. package/dist/registry/v6/experiences/1-conversation-list/templates/reactjs/App.css.tpl +0 -40
  30. package/dist/registry/v6/experiences/1-conversation-list/templates/reactjs/App.tsx.tpl +0 -55
  31. package/dist/registry/v6/experiences/1-conversation-list/templates/reactjs/CometChatSelector.tsx.tpl +0 -40
  32. package/dist/registry/v6/experiences/1-conversation-list/templates/reactjs/main.tsx.tpl +0 -46
  33. package/dist/registry/v6/experiences/1-conversation-list/templates/reactjs-dedicated-route/ChatPage.tsx.tpl +0 -87
  34. package/dist/registry/v6/experiences/1-conversation-list/templates/reactjs-dedicated-route/CometChatMessenger.css.tpl +0 -20
  35. package/dist/registry/v6/experiences/1-conversation-list/templates/reactjs-dedicated-route/CometChatMessenger.tsx.tpl +0 -54
  36. package/dist/registry/v6/experiences/1-conversation-list/templates/reactjs-dedicated-route/CometChatSelector.tsx.tpl +0 -40
  37. package/dist/registry/v6/experiences/2-one-to-one/astro.template.json +0 -81
  38. package/dist/registry/v6/experiences/2-one-to-one/nextjs.template.json +0 -77
  39. package/dist/registry/v6/experiences/2-one-to-one/react-router.template.json +0 -93
  40. package/dist/registry/v6/experiences/2-one-to-one/reactjs-dedicated-route.template.json +0 -75
  41. package/dist/registry/v6/experiences/2-one-to-one/reactjs.template.json +0 -80
  42. package/dist/registry/v6/experiences/2-one-to-one/templates/astro/ChatApp.css.tpl +0 -21
  43. package/dist/registry/v6/experiences/2-one-to-one/templates/astro/ChatApp.tsx.tpl +0 -66
  44. package/dist/registry/v6/experiences/2-one-to-one/templates/astro/chat.astro.tpl +0 -17
  45. package/dist/registry/v6/experiences/2-one-to-one/templates/nextjs/CometChatNoSSR.css.tpl +0 -21
  46. package/dist/registry/v6/experiences/2-one-to-one/templates/nextjs/CometChatNoSSR.tsx.tpl +0 -66
  47. package/dist/registry/v6/experiences/2-one-to-one/templates/nextjs/chat-page.tsx.tpl +0 -11
  48. package/dist/registry/v6/experiences/2-one-to-one/templates/react-router/CometChat-route.tsx.tpl +0 -21
  49. package/dist/registry/v6/experiences/2-one-to-one/templates/react-router/CometChatNoSSR.css.tpl +0 -21
  50. package/dist/registry/v6/experiences/2-one-to-one/templates/react-router/CometChatNoSSR.tsx.tpl +0 -67
  51. package/dist/registry/v6/experiences/2-one-to-one/templates/reactjs/App.css.tpl +0 -4
  52. package/dist/registry/v6/experiences/2-one-to-one/templates/reactjs/App.tsx.tpl +0 -44
  53. package/dist/registry/v6/experiences/2-one-to-one/templates/reactjs/main.tsx.tpl +0 -46
  54. package/dist/registry/v6/experiences/2-one-to-one/templates/reactjs-dedicated-route/ChatPage.tsx.tpl +0 -84
  55. package/dist/registry/v6/experiences/2-one-to-one/templates/reactjs-dedicated-route/CometChatMessenger.css.tpl +0 -9
  56. package/dist/registry/v6/experiences/2-one-to-one/templates/reactjs-dedicated-route/CometChatMessenger.tsx.tpl +0 -43
  57. package/dist/registry/v6/experiences/3-tab-based/astro.template.json +0 -93
  58. package/dist/registry/v6/experiences/3-tab-based/nextjs.template.json +0 -90
  59. package/dist/registry/v6/experiences/3-tab-based/react-router.template.json +0 -105
  60. package/dist/registry/v6/experiences/3-tab-based/reactjs-dedicated-route.template.json +0 -89
  61. package/dist/registry/v6/experiences/3-tab-based/reactjs.template.json +0 -93
  62. package/dist/registry/v6/experiences/3-tab-based/templates/astro/ChatApp.css.tpl +0 -39
  63. package/dist/registry/v6/experiences/3-tab-based/templates/astro/ChatApp.tsx.tpl +0 -93
  64. package/dist/registry/v6/experiences/3-tab-based/templates/astro/CometChatTabs.css.tpl +0 -43
  65. package/dist/registry/v6/experiences/3-tab-based/templates/astro/CometChatTabs.tsx.tpl +0 -72
  66. package/dist/registry/v6/experiences/3-tab-based/templates/astro/chat.astro.tpl +0 -17
  67. package/dist/registry/v6/experiences/3-tab-based/templates/nextjs/CometChatNoSSR.css.tpl +0 -39
  68. package/dist/registry/v6/experiences/3-tab-based/templates/nextjs/CometChatNoSSR.tsx.tpl +0 -93
  69. package/dist/registry/v6/experiences/3-tab-based/templates/nextjs/CometChatTabs.css.tpl +0 -43
  70. package/dist/registry/v6/experiences/3-tab-based/templates/nextjs/CometChatTabs.tsx.tpl +0 -73
  71. package/dist/registry/v6/experiences/3-tab-based/templates/nextjs/chat-page.tsx.tpl +0 -11
  72. package/dist/registry/v6/experiences/3-tab-based/templates/react-router/CometChat-route.tsx.tpl +0 -21
  73. package/dist/registry/v6/experiences/3-tab-based/templates/react-router/CometChatNoSSR.css.tpl +0 -39
  74. package/dist/registry/v6/experiences/3-tab-based/templates/react-router/CometChatNoSSR.tsx.tpl +0 -94
  75. package/dist/registry/v6/experiences/3-tab-based/templates/react-router/CometChatTabs.css.tpl +0 -43
  76. package/dist/registry/v6/experiences/3-tab-based/templates/react-router/CometChatTabs.tsx.tpl +0 -72
  77. package/dist/registry/v6/experiences/3-tab-based/templates/reactjs/App.css.tpl +0 -7
  78. package/dist/registry/v6/experiences/3-tab-based/templates/reactjs/App.tsx.tpl +0 -62
  79. package/dist/registry/v6/experiences/3-tab-based/templates/reactjs/CometChatTabs.css.tpl +0 -43
  80. package/dist/registry/v6/experiences/3-tab-based/templates/reactjs/CometChatTabs.tsx.tpl +0 -72
  81. package/dist/registry/v6/experiences/3-tab-based/templates/reactjs/main.tsx.tpl +0 -46
  82. package/dist/registry/v6/experiences/3-tab-based/templates/reactjs-dedicated-route/ChatPage.tsx.tpl +0 -84
  83. package/dist/registry/v6/experiences/3-tab-based/templates/reactjs-dedicated-route/CometChatMessenger.css.tpl +0 -11
  84. package/dist/registry/v6/experiences/3-tab-based/templates/reactjs-dedicated-route/CometChatMessenger.tsx.tpl +0 -61
  85. package/dist/registry/v6/experiences/3-tab-based/templates/reactjs-dedicated-route/CometChatTabs.css.tpl +0 -43
  86. package/dist/registry/v6/experiences/3-tab-based/templates/reactjs-dedicated-route/CometChatTabs.tsx.tpl +0 -72
  87. package/dist/registry/v6/features/catalog.json +0 -990
  88. package/dist/registry/v6/production/astro/cometchat-token.ts.tpl +0 -86
  89. package/dist/registry/v6/production/astro.template.json +0 -51
  90. package/dist/registry/v6/production/nextjs/route.ts.tpl +0 -79
  91. package/dist/registry/v6/production/nextjs.template.json +0 -50
  92. package/dist/registry/v6/production/react-router/api.cometchat-token.ts.tpl +0 -73
  93. package/dist/registry/v6/production/react-router.template.json +0 -58
  94. package/dist/registry/v6/user-mgmt/astro/cometchat-user.ts.tpl +0 -164
  95. package/dist/registry/v6/user-mgmt/astro.template.json +0 -33
  96. package/dist/registry/v6/user-mgmt/nextjs/route.ts.tpl +0 -212
  97. package/dist/registry/v6/user-mgmt/nextjs.template.json +0 -57
  98. package/dist/registry/v6/user-mgmt/react-router/api.cometchat-user.ts.tpl +0 -176
  99. package/dist/registry/v6/user-mgmt/react-router.template.json +0 -40
  100. package/dist/registry/v6/widget/astro/CometChatWidget.css.tpl +0 -105
  101. package/dist/registry/v6/widget/astro/CometChatWidget.tsx.tpl +0 -88
  102. package/dist/registry/v6/widget/astro.template.json +0 -38
  103. package/dist/registry/v6/widget/nextjs/CometChatWidget.css.tpl +0 -105
  104. package/dist/registry/v6/widget/nextjs/CometChatWidget.tsx.tpl +0 -88
  105. package/dist/registry/v6/widget/nextjs.template.json +0 -40
  106. package/dist/registry/v6/widget/react-router/CometChatWidget.css.tpl +0 -105
  107. package/dist/registry/v6/widget/react-router/CometChatWidget.tsx.tpl +0 -98
  108. package/dist/registry/v6/widget/react-router.template.json +0 -36
  109. package/dist/registry/v6/widget/reactjs/CometChatWidget.css.tpl +0 -105
  110. package/dist/registry/v6/widget/reactjs/CometChatWidget.tsx.tpl +0 -89
  111. package/dist/registry/v6/widget/reactjs.template.json +0 -36
@@ -1,54 +0,0 @@
1
- import { useState } from "react";
2
- import {
3
- CometChatMessageComposer,
4
- CometChatMessageHeader,
5
- CometChatMessageList,
6
- } from "@cometchat/chat-uikit-react";
7
- import { CometChat } from "@cometchat/chat-sdk-javascript";
8
- import { CometChatSelector } from "./CometChatSelector";
9
- import "./CometChatMessenger.css";
10
-
11
- export default function CometChatMessenger() {
12
- const [selectedUser, setSelectedUser] = useState<
13
- CometChat.User | undefined
14
- >();
15
- const [selectedGroup, setSelectedGroup] = useState<
16
- CometChat.Group | undefined
17
- >();
18
-
19
- return (
20
- <div className="conversations-with-messages">
21
- <div className="conversations-wrapper">
22
- <CometChatSelector
23
- onSelectorItemClicked={(activeItem) => {
24
- const item =
25
- activeItem instanceof CometChat.Conversation
26
- ? activeItem.getConversationWith()
27
- : activeItem;
28
- if (item instanceof CometChat.User) {
29
- setSelectedUser(item);
30
- setSelectedGroup(undefined);
31
- } else if (item instanceof CometChat.Group) {
32
- setSelectedUser(undefined);
33
- setSelectedGroup(item);
34
- }
35
- }}
36
- />
37
- </div>
38
- {selectedUser || selectedGroup ? (
39
- <div className="messages-wrapper">
40
- {selectedUser && <CometChatMessageHeader user={selectedUser} />}
41
- {selectedGroup && <CometChatMessageHeader group={selectedGroup} />}
42
- {selectedUser && <CometChatMessageList user={selectedUser} />}
43
- {selectedGroup && <CometChatMessageList group={selectedGroup} />}
44
- {selectedUser && <CometChatMessageComposer user={selectedUser} />}
45
- {selectedGroup && <CometChatMessageComposer group={selectedGroup} />}
46
- </div>
47
- ) : (
48
- <div className="empty-conversation">
49
- Select a conversation to start chatting
50
- </div>
51
- )}
52
- </div>
53
- );
54
- }
@@ -1,40 +0,0 @@
1
- import { useEffect, useState } from "react";
2
- import type { CometChat } from "@cometchat/chat-sdk-javascript";
3
- import {
4
- CometChatConversations,
5
- CometChatUIKitLoginListener,
6
- } from "@cometchat/chat-uikit-react";
7
-
8
- interface SelectorProps {
9
- onSelectorItemClicked?: (
10
- input: CometChat.Conversation | CometChat.User | CometChat.Group,
11
- type: string
12
- ) => void;
13
- }
14
-
15
- export const CometChatSelector = ({
16
- onSelectorItemClicked = () => {},
17
- }: SelectorProps) => {
18
- const [loggedInUser, setLoggedInUser] = useState<CometChat.User | null>(null);
19
- const [activeConversation, setActiveConversation] = useState<
20
- CometChat.Conversation | undefined
21
- >();
22
-
23
- useEffect(() => {
24
- setLoggedInUser(CometChatUIKitLoginListener.getLoggedInUser());
25
- }, []);
26
-
27
- return (
28
- <>
29
- {loggedInUser && (
30
- <CometChatConversations
31
- activeConversation={activeConversation}
32
- onItemClick={(e) => {
33
- setActiveConversation(e);
34
- onSelectorItemClicked(e, "updateSelectedItem");
35
- }}
36
- />
37
- )}
38
- </>
39
- );
40
- };
@@ -1,81 +0,0 @@
1
- {
2
- "$schema": "../../../schemas/template.schema.json",
3
- "version": "1.0.0",
4
- "experience_id": 2,
5
- "framework": "astro",
6
- "sdk_compatibility": ">=6.0.0 <7.0.0",
7
- "default_placement": "dedicated-route",
8
- "deps": [
9
- {
10
- "name": "@cometchat/chat-uikit-react",
11
- "version": "^6"
12
- },
13
- {
14
- "name": "@cometchat/chat-sdk-javascript",
15
- "version": "^4"
16
- },
17
- {
18
- "name": "@astrojs/react",
19
- "version": "^4"
20
- },
21
- {
22
- "name": "react",
23
- "version": "^18"
24
- },
25
- {
26
- "name": "react-dom",
27
- "version": "^18"
28
- }
29
- ],
30
- "env_vars": [
31
- {
32
- "name": "{{ENV_PREFIX}}COMETCHAT_APP_ID",
33
- "required": true,
34
- "description": "CometChat App ID from your dashboard"
35
- },
36
- {
37
- "name": "{{ENV_PREFIX}}COMETCHAT_REGION",
38
- "required": true,
39
- "description": "CometChat region (us, eu, in, etc.)"
40
- },
41
- {
42
- "name": "{{ENV_PREFIX}}COMETCHAT_AUTH_KEY",
43
- "required": true,
44
- "secret": true,
45
- "description": "CometChat Auth Key (development only)"
46
- }
47
- ],
48
- "files": [
49
- {
50
- "path": "src/cometchat/ChatApp.tsx",
51
- "action": "create",
52
- "template_ref": "ChatApp.tsx.tpl",
53
- "owned": true
54
- },
55
- {
56
- "path": "src/cometchat/ChatApp.css",
57
- "action": "create",
58
- "template_ref": "ChatApp.css.tpl",
59
- "owned": true
60
- },
61
- {
62
- "path": "src/pages/chat.astro",
63
- "action": "create",
64
- "template_ref": "chat.astro.tpl",
65
- "owned": true
66
- }
67
- ],
68
- "verify_rules": [
69
- "init_before_login",
70
- "no_user_and_group_same_component",
71
- "no_auth_key_in_source",
72
- "render_gated_on_login_resolve",
73
- "error_ui_visible_on_failure"
74
- ],
75
- "next_steps": [
76
- "If `@astrojs/react` isn't installed yet, run: `npx astro add react`",
77
- "Run `npm run dev` to start the dev server",
78
- "Visit http://localhost:4321/chat — you'll see a one-to-one chat with `{{CHAT_UID}}`",
79
- "Edit `CHAT_UID` in `src/cometchat/ChatApp.tsx` to change the chat partner"
80
- ]
81
- }
@@ -1,77 +0,0 @@
1
- {
2
- "$schema": "../../../schemas/template.schema.json",
3
- "version": "1.0.0",
4
- "experience_id": 2,
5
- "framework": "nextjs",
6
- "sdk_compatibility": ">=6.0.0 <7.0.0",
7
- "default_placement": "dedicated-route",
8
- "deps": [
9
- {
10
- "name": "@cometchat/chat-uikit-react",
11
- "version": "^6"
12
- },
13
- {
14
- "name": "@cometchat/chat-sdk-javascript",
15
- "version": "^4"
16
- }
17
- ],
18
- "env_vars": [
19
- {
20
- "name": "{{ENV_PREFIX}}COMETCHAT_APP_ID",
21
- "required": true,
22
- "description": "CometChat App ID from your dashboard"
23
- },
24
- {
25
- "name": "{{ENV_PREFIX}}COMETCHAT_REGION",
26
- "required": true,
27
- "description": "CometChat region (us, eu, in, etc.)"
28
- },
29
- {
30
- "name": "{{ENV_PREFIX}}COMETCHAT_AUTH_KEY",
31
- "required": true,
32
- "secret": true,
33
- "description": "CometChat Auth Key (development only)"
34
- }
35
- ],
36
- "files": [
37
- {
38
- "path": "src/app/cometchat/CometChatNoSSR.tsx",
39
- "action": "create",
40
- "template_ref": "CometChatNoSSR.tsx.tpl",
41
- "owned": true
42
- },
43
- {
44
- "path": "src/app/cometchat/CometChatNoSSR.css",
45
- "action": "create",
46
- "template_ref": "CometChatNoSSR.css.tpl",
47
- "owned": true
48
- },
49
- {
50
- "path": "src/app/chat/page.tsx",
51
- "action": "create",
52
- "template_ref": "chat-page.tsx.tpl",
53
- "owned": true
54
- },
55
- {
56
- "path": "src/app/globals.css",
57
- "action": "patch",
58
- "patch_mode": "prepend",
59
- "patch_content": "@import url(\"@cometchat/chat-uikit-react/css-variables.css\");\n",
60
- "skip_if_exists": "@cometchat/chat-uikit-react/css-variables.css"
61
- }
62
- ],
63
- "verify_rules": [
64
- "css_variables_imported_once",
65
- "init_before_login",
66
- "no_user_and_group_same_component",
67
- "no_auth_key_in_source",
68
- "render_gated_on_login_resolve",
69
- "error_ui_visible_on_failure"
70
- ],
71
- "next_steps": [
72
- "Run `npm run dev` to start the dev server",
73
- "Visit http://localhost:3000/chat — you'll see a one-to-one chat with `{{CHAT_UID}}`",
74
- "Edit `UID` in `src/app/cometchat/CometChatNoSSR.tsx` to change the chat partner",
75
- "When ready for production, run `cometchat apply --production` to set up server-side auth tokens"
76
- ]
77
- }
@@ -1,93 +0,0 @@
1
- {
2
- "$schema": "../../../schemas/template.schema.json",
3
- "version": "1.0.0",
4
- "experience_id": 2,
5
- "framework": "react-router",
6
- "sdk_compatibility": ">=6.0.0 <7.0.0",
7
- "default_placement": "dedicated-route",
8
- "deps": [
9
- {
10
- "name": "@cometchat/chat-uikit-react",
11
- "version": "^6"
12
- },
13
- {
14
- "name": "@cometchat/chat-sdk-javascript",
15
- "version": "^4"
16
- }
17
- ],
18
- "env_vars": [
19
- {
20
- "name": "{{ENV_PREFIX}}COMETCHAT_APP_ID",
21
- "required": true,
22
- "description": "CometChat App ID from your dashboard"
23
- },
24
- {
25
- "name": "{{ENV_PREFIX}}COMETCHAT_REGION",
26
- "required": true,
27
- "description": "CometChat region (us, eu, in, etc.)"
28
- },
29
- {
30
- "name": "{{ENV_PREFIX}}COMETCHAT_AUTH_KEY",
31
- "required": true,
32
- "secret": true,
33
- "description": "CometChat Auth Key (development only)"
34
- }
35
- ],
36
- "files": [
37
- {
38
- "path": "app/cometchat/CometChatNoSSR.tsx",
39
- "action": "create",
40
- "template_ref": "CometChatNoSSR.tsx.tpl",
41
- "owned": true
42
- },
43
- {
44
- "path": "app/cometchat/CometChatNoSSR.css",
45
- "action": "create",
46
- "template_ref": "CometChatNoSSR.css.tpl",
47
- "owned": true
48
- },
49
- {
50
- "path": "app/routes/CometChat.tsx",
51
- "action": "create",
52
- "template_ref": "CometChat-route.tsx.tpl",
53
- "owned": true
54
- },
55
- {
56
- "path": "app/routes.ts",
57
- "action": "patch",
58
- "patch_mode": "replace-section",
59
- "anchor": "import { type RouteConfig, index }",
60
- "patch_content": "import { type RouteConfig, index, route } from \"@react-router/dev/routes\";",
61
- "skip_if_exists": "import { type RouteConfig, index, route }"
62
- },
63
- {
64
- "path": "app/routes.ts",
65
- "action": "patch",
66
- "patch_mode": "insert-before",
67
- "anchor": "] satisfies RouteConfig",
68
- "patch_content": " route(\"chat\", \"routes/CometChat.tsx\"),\n",
69
- "skip_if_exists": "routes/CometChat.tsx"
70
- },
71
- {
72
- "path": "app/app.css",
73
- "action": "patch",
74
- "patch_mode": "prepend",
75
- "patch_content": "@import url(\"@cometchat/chat-uikit-react/css-variables.css\");\n",
76
- "skip_if_exists": "@cometchat/chat-uikit-react/css-variables.css"
77
- }
78
- ],
79
- "verify_rules": [
80
- "css_variables_imported_once",
81
- "init_before_login",
82
- "no_user_and_group_same_component",
83
- "no_auth_key_in_source",
84
- "render_gated_on_login_resolve",
85
- "error_ui_visible_on_failure"
86
- ],
87
- "next_steps": [
88
- "Add the chat route to app/routes.ts: route(\"chat\", \"routes/CometChat.tsx\")",
89
- "Run `npm run dev` to start the dev server",
90
- "Visit http://localhost:5173/chat — you'll see a one-to-one chat with `{{CHAT_UID}}`",
91
- "Edit `CHAT_UID` in `app/cometchat/CometChatNoSSR.tsx` to change the chat partner"
92
- ]
93
- }
@@ -1,75 +0,0 @@
1
- {
2
- "$schema": "../../../schemas/template.schema.json",
3
- "version": "1.0.0",
4
- "experience_id": 2,
5
- "framework": "reactjs-dedicated-route",
6
- "sdk_compatibility": ">=6.0.0 <7.0.0",
7
- "default_placement": "dedicated-route",
8
- "deps": [
9
- { "name": "@cometchat/chat-uikit-react", "version": "^6" },
10
- { "name": "@cometchat/chat-sdk-javascript", "version": "^4" }
11
- ],
12
- "env_vars": [
13
- { "name": "{{ENV_PREFIX}}COMETCHAT_APP_ID", "required": true, "description": "CometChat App ID from your dashboard" },
14
- { "name": "{{ENV_PREFIX}}COMETCHAT_REGION", "required": true, "description": "CometChat region (us, eu, in, etc.)" },
15
- { "name": "{{ENV_PREFIX}}COMETCHAT_AUTH_KEY", "required": true, "secret": true, "description": "CometChat Auth Key (development only — use auth tokens in production)" }
16
- ],
17
- "files": [
18
- {
19
- "path": "src/cometchat/CometChatMessenger.tsx",
20
- "action": "create",
21
- "template_ref": "CometChatMessenger.tsx.tpl",
22
- "owned": true
23
- },
24
- {
25
- "path": "src/cometchat/CometChatMessenger.css",
26
- "action": "create",
27
- "template_ref": "CometChatMessenger.css.tpl",
28
- "owned": true
29
- },
30
- {
31
- "path": "src/pages/ChatPage.tsx",
32
- "action": "create",
33
- "template_ref": "ChatPage.tsx.tpl",
34
- "owned": true,
35
- "is_entry": true
36
- },
37
- {
38
- "path": "src/App.tsx",
39
- "action": "patch",
40
- "patch_mode": "prepend",
41
- "patch_content": "import ChatPage from \"./pages/ChatPage\";\n",
42
- "skip_if_exists": "./pages/ChatPage",
43
- "embed_skip": true
44
- },
45
- {
46
- "path": "src/App.tsx",
47
- "action": "patch",
48
- "patch_mode": "insert-before",
49
- "anchor": "</Routes>",
50
- "patch_content": " <Route path=\"{{PLACEMENT_PATH}}\" element={<ChatPage />} />\n ",
51
- "skip_if_exists": "element={<ChatPage />}",
52
- "embed_skip": true
53
- },
54
- {
55
- "path": "src/index.css",
56
- "action": "patch",
57
- "patch_mode": "prepend",
58
- "patch_content": "@import url(\"@cometchat/chat-uikit-react/css-variables.css\");\n",
59
- "skip_if_exists": "@cometchat/chat-uikit-react/css-variables.css"
60
- }
61
- ],
62
- "verify_rules": [
63
- "css_variables_imported_once",
64
- "init_before_login",
65
- "no_auth_key_in_source",
66
- "render_gated_on_login_resolve",
67
- "error_ui_visible_on_failure"
68
- ],
69
- "next_steps": [
70
- "Run `npm run dev` to start the dev server",
71
- "Visit http://localhost:5173{{PLACEMENT_PATH}} — you'll see a one-to-one chat with `{{CHAT_UID}}`",
72
- "To change the chat partner, edit `CHAT_UID` in `src/cometchat/CometChatMessenger.tsx`",
73
- "If the route didn't wire up automatically (your App.tsx layout is non-standard), add: <Route path=\"{{PLACEMENT_PATH}}\" element={<ChatPage />} /> inside your existing <Routes> block and import ChatPage from ./pages/ChatPage"
74
- ]
75
- }
@@ -1,80 +0,0 @@
1
- {
2
- "$schema": "../../../schemas/template.schema.json",
3
- "version": "1.0.0",
4
- "experience_id": 2,
5
- "framework": "reactjs",
6
- "sdk_compatibility": ">=6.0.0 <7.0.0",
7
- "default_placement": "spa-root",
8
- "deps": [
9
- {
10
- "name": "@cometchat/chat-uikit-react",
11
- "version": "^6"
12
- },
13
- {
14
- "name": "@cometchat/chat-sdk-javascript",
15
- "version": "^4"
16
- }
17
- ],
18
- "env_vars": [
19
- {
20
- "name": "{{ENV_PREFIX}}COMETCHAT_APP_ID",
21
- "required": true,
22
- "description": "CometChat App ID from your dashboard"
23
- },
24
- {
25
- "name": "{{ENV_PREFIX}}COMETCHAT_REGION",
26
- "required": true,
27
- "description": "CometChat region (us, eu, in, etc.)"
28
- },
29
- {
30
- "name": "{{ENV_PREFIX}}COMETCHAT_AUTH_KEY",
31
- "required": true,
32
- "secret": true,
33
- "description": "CometChat Auth Key (development only — use auth tokens in production)"
34
- }
35
- ],
36
- "files": [
37
- {
38
- "path": "src/main.tsx",
39
- "action": "create",
40
- "template_ref": "main.tsx.tpl",
41
- "owned": true,
42
- "embed_skip": true
43
- },
44
- {
45
- "path": "src/App.tsx",
46
- "action": "create",
47
- "template_ref": "App.tsx.tpl",
48
- "owned": true,
49
- "is_entry": true
50
- },
51
- {
52
- "path": "src/App.css",
53
- "action": "create",
54
- "template_ref": "App.css.tpl",
55
- "owned": true,
56
- "move_with_entry": true
57
- },
58
- {
59
- "path": "src/index.css",
60
- "action": "patch",
61
- "patch_mode": "prepend",
62
- "patch_content": "@import url(\"@cometchat/chat-uikit-react/css-variables.css\");\n",
63
- "skip_if_exists": "@cometchat/chat-uikit-react/css-variables.css"
64
- }
65
- ],
66
- "verify_rules": [
67
- "css_variables_imported_once",
68
- "init_before_login",
69
- "no_user_and_group_same_component",
70
- "no_auth_key_in_source",
71
- "render_gated_on_login_resolve",
72
- "error_ui_visible_on_failure"
73
- ],
74
- "next_steps": [
75
- "Run `npm run dev` to start the dev server",
76
- "Visit http://localhost:5173 — you'll see a one-to-one chat with `{{CHAT_UID}}`",
77
- "To change the chat partner, edit `CHAT_UID` in `src/App.tsx`",
78
- "When ready for production, run `cometchat apply --production` to set up server-side auth tokens"
79
- ]
80
- }
@@ -1,21 +0,0 @@
1
- .messages-wrapper {
2
- width: 100%;
3
- height: 100vh;
4
- display: flex;
5
- flex-direction: column;
6
- }
7
-
8
- .empty-conversation {
9
- height: 100vh;
10
- width: 100%;
11
- display: flex;
12
- justify-content: center;
13
- align-items: center;
14
- background: white;
15
- color: var(--cometchat-text-color-secondary, #727272);
16
- font: var(--cometchat-font-body-regular, 400 14px Roboto);
17
- }
18
-
19
- .cometchat .cometchat-message-composer {
20
- border-radius: 0;
21
- }
@@ -1,66 +0,0 @@
1
- import { useEffect, useState } from "react";
2
- import {
3
- CometChatMessageComposer,
4
- CometChatMessageHeader,
5
- CometChatMessageList,
6
- CometChatUIKit,
7
- UIKitSettingsBuilder,
8
- } from "@cometchat/chat-uikit-react";
9
- import type { CometChat } from "@cometchat/chat-sdk-javascript";
10
- // IMPORTANT: css-variables.css MUST be imported here (inside the React island)
11
- // — global stylesheets imported in .astro files do not apply to client:only islands.
12
- import "@cometchat/chat-uikit-react/css-variables.css";
13
- import "./ChatApp.css";
14
-
15
- const COMETCHAT_CONSTANTS = {
16
- APP_ID: import.meta.env.{{ENV_PREFIX}}COMETCHAT_APP_ID as string,
17
- REGION: import.meta.env.{{ENV_PREFIX}}COMETCHAT_REGION as string,
18
- AUTH_KEY: import.meta.env.{{ENV_PREFIX}}COMETCHAT_AUTH_KEY as string,
19
- };
20
- const LOGIN_UID = "{{LOGIN_UID}}";
21
- const CHAT_UID = "{{CHAT_UID}}";
22
-
23
- export default function ChatApp() {
24
- const [loggedIn, setLoggedIn] = useState(false);
25
- const [chatUser, setChatUser] = useState<CometChat.User | undefined>();
26
- const [error, setError] = useState<string | null>(null);
27
-
28
- useEffect(() => {
29
- const settings = new UIKitSettingsBuilder()
30
- .setAppId(COMETCHAT_CONSTANTS.APP_ID)
31
- .setRegion(COMETCHAT_CONSTANTS.REGION)
32
- .setAuthKey(COMETCHAT_CONSTANTS.AUTH_KEY)
33
- .subscribePresenceForAllUsers()
34
- .build();
35
-
36
- CometChatUIKit.init(settings)?.then(() => {
37
- CometChatUIKit.getLoggedinUser().then((u) => {
38
- if (!u) {
39
- CometChatUIKit.login(LOGIN_UID)
40
- .then(() => setLoggedIn(true))
41
- .catch((e: unknown) => setError(String(e)));
42
- } else {
43
- setLoggedIn(true);
44
- }
45
- });
46
- }).catch((e: unknown) => setError(String(e)));
47
- }, []);
48
-
49
- useEffect(() => {
50
- if (!loggedIn) return;
51
- CometChat.getUser(CHAT_UID)
52
- .then((u) => setChatUser(u))
53
- .catch((e: unknown) => setError(String(e)));
54
- }, [loggedIn]);
55
-
56
- if (error) return <div style={{ color: "red", padding: 16, fontFamily: "monospace" }}>{error}</div>;
57
- if (!loggedIn || !chatUser) return <div className="empty-conversation">Loading chat…</div>;
58
-
59
- return (
60
- <div className="messages-wrapper">
61
- <CometChatMessageHeader user={chatUser} />
62
- <CometChatMessageList user={chatUser} />
63
- <CometChatMessageComposer user={chatUser} />
64
- </div>
65
- );
66
- }
@@ -1,17 +0,0 @@
1
- ---
2
- import ChatApp from "../cometchat/ChatApp.tsx";
3
- ---
4
-
5
- <html lang="en">
6
- <head>
7
- <meta charset="utf-8" />
8
- <meta name="viewport" content="width=device-width" />
9
- <title>Chat</title>
10
- <style>
11
- html, body { margin: 0; padding: 0; height: 100%; }
12
- </style>
13
- </head>
14
- <body>
15
- <ChatApp client:only="react" />
16
- </body>
17
- </html>
@@ -1,21 +0,0 @@
1
- .messages-wrapper {
2
- width: 100%;
3
- height: 100vh;
4
- display: flex;
5
- flex-direction: column;
6
- }
7
-
8
- .empty-conversation {
9
- height: 100vh;
10
- width: 100%;
11
- display: flex;
12
- justify-content: center;
13
- align-items: center;
14
- background: white;
15
- color: var(--cometchat-text-color-secondary, #727272);
16
- font: var(--cometchat-font-body-regular, 400 14px Roboto);
17
- }
18
-
19
- .cometchat .cometchat-message-composer {
20
- border-radius: 0;
21
- }