realtimex-crm 0.14.3 → 0.16.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.
- package/dist/assets/{DealList-CI9LYDGb.js → DealList-DSSxOHlE.js} +2 -2
- package/dist/assets/{DealList-CI9LYDGb.js.map → DealList-DSSxOHlE.js.map} +1 -1
- package/dist/assets/{index-BOLCrrNA.js → index-BCVxqu9y.js} +26 -26
- package/dist/assets/{index-BOLCrrNA.js.map → index-BCVxqu9y.js.map} +1 -1
- package/dist/index.html +1 -1
- package/dist/stats.html +1 -1
- package/package.json +1 -1
- package/src/components/atomic-crm/companies/CompanyInputs.tsx +9 -14
- package/src/components/atomic-crm/contacts/ContactInputs.tsx +1 -1
- package/src/components/atomic-crm/root/CRM.tsx +12 -0
- package/src/components/atomic-crm/root/ConfigurationContext.tsx +18 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "realtimex-crm",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.16.0",
|
|
4
4
|
"description": "RealTimeX CRM - A full-featured CRM built with React, shadcn-admin-kit, and Supabase. Fork of Atomic CRM with RealTimeX App SDK integration.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -122,6 +122,7 @@ const CompanyContextInputs = () => {
|
|
|
122
122
|
companyLifecycleStages,
|
|
123
123
|
companyTypes,
|
|
124
124
|
companyRevenueRanges,
|
|
125
|
+
companyQualificationStatuses,
|
|
125
126
|
} = useConfigurationContext();
|
|
126
127
|
|
|
127
128
|
return (
|
|
@@ -145,6 +146,14 @@ const CompanyContextInputs = () => {
|
|
|
145
146
|
helperText={false}
|
|
146
147
|
/>
|
|
147
148
|
)}
|
|
149
|
+
{companyQualificationStatuses && (
|
|
150
|
+
<SelectInput
|
|
151
|
+
source="qualification_status"
|
|
152
|
+
label="Qualification Status"
|
|
153
|
+
choices={companyQualificationStatuses}
|
|
154
|
+
helperText={false}
|
|
155
|
+
/>
|
|
156
|
+
)}
|
|
148
157
|
|
|
149
158
|
{/* Industry & Sector */}
|
|
150
159
|
<SelectInput
|
|
@@ -235,7 +244,6 @@ const saleOptionRenderer = (choice: Sale) =>
|
|
|
235
244
|
|
|
236
245
|
const CompanyAdvancedSettings = () => {
|
|
237
246
|
const [isOpen, setIsOpen] = useState(false);
|
|
238
|
-
const { companyQualificationStatuses } = useConfigurationContext();
|
|
239
247
|
|
|
240
248
|
return (
|
|
241
249
|
<Collapsible open={isOpen} onOpenChange={setIsOpen}>
|
|
@@ -267,19 +275,6 @@ const CompanyAdvancedSettings = () => {
|
|
|
267
275
|
helperText={false}
|
|
268
276
|
/>
|
|
269
277
|
</div>
|
|
270
|
-
|
|
271
|
-
{/* Data Quality */}
|
|
272
|
-
{companyQualificationStatuses && (
|
|
273
|
-
<div className="flex flex-col gap-4">
|
|
274
|
-
<h6 className="text-sm font-semibold text-muted-foreground">Data Quality</h6>
|
|
275
|
-
<SelectInput
|
|
276
|
-
source="qualification_status"
|
|
277
|
-
label="Qualification Status"
|
|
278
|
-
choices={companyQualificationStatuses}
|
|
279
|
-
helperText={false}
|
|
280
|
-
/>
|
|
281
|
-
</div>
|
|
282
|
-
)}
|
|
283
278
|
</div>
|
|
284
279
|
</CollapsibleContent>
|
|
285
280
|
</Collapsible>
|
|
@@ -57,7 +57,7 @@ const ContactIdentityInputs = () => {
|
|
|
57
57
|
defaultValue={contactGender[0].value}
|
|
58
58
|
/>
|
|
59
59
|
<TextInput source="first_name" validate={required()} helperText={false} />
|
|
60
|
-
<TextInput source="last_name"
|
|
60
|
+
<TextInput source="last_name" helperText={false} />
|
|
61
61
|
</div>
|
|
62
62
|
);
|
|
63
63
|
};
|
|
@@ -99,6 +99,10 @@ export type CRMProps = {
|
|
|
99
99
|
export const CRM = ({
|
|
100
100
|
contactGender = defaultContactGender,
|
|
101
101
|
companySectors = defaultCompanySectors,
|
|
102
|
+
companyLifecycleStages,
|
|
103
|
+
companyTypes,
|
|
104
|
+
companyQualificationStatuses,
|
|
105
|
+
companyRevenueRanges,
|
|
102
106
|
dealCategories = defaultDealCategories,
|
|
103
107
|
dealPipelineStatuses = defaultDealPipelineStatuses,
|
|
104
108
|
dealStages = defaultDealStages,
|
|
@@ -109,6 +113,8 @@ export const CRM = ({
|
|
|
109
113
|
taskPriorities = defaultTaskPriorities,
|
|
110
114
|
taskStatuses = defaultTaskStatuses,
|
|
111
115
|
title = defaultTitle,
|
|
116
|
+
externalHeartbeatStatuses,
|
|
117
|
+
internalHeartbeatStatuses,
|
|
112
118
|
dataProvider = defaultDataProvider,
|
|
113
119
|
authProvider = defaultAuthProvider,
|
|
114
120
|
disableTelemetry,
|
|
@@ -132,6 +138,10 @@ export const CRM = ({
|
|
|
132
138
|
<ConfigurationProvider
|
|
133
139
|
contactGender={contactGender}
|
|
134
140
|
companySectors={companySectors}
|
|
141
|
+
companyLifecycleStages={companyLifecycleStages}
|
|
142
|
+
companyTypes={companyTypes}
|
|
143
|
+
companyQualificationStatuses={companyQualificationStatuses}
|
|
144
|
+
companyRevenueRanges={companyRevenueRanges}
|
|
135
145
|
dealCategories={dealCategories}
|
|
136
146
|
dealPipelineStatuses={dealPipelineStatuses}
|
|
137
147
|
dealStages={dealStages}
|
|
@@ -142,6 +152,8 @@ export const CRM = ({
|
|
|
142
152
|
taskPriorities={taskPriorities}
|
|
143
153
|
taskStatuses={taskStatuses}
|
|
144
154
|
title={title}
|
|
155
|
+
externalHeartbeatStatuses={externalHeartbeatStatuses}
|
|
156
|
+
internalHeartbeatStatuses={internalHeartbeatStatuses}
|
|
145
157
|
>
|
|
146
158
|
<DatabaseHealthCheck dataProvider={dataProvider}>
|
|
147
159
|
<Admin
|
|
@@ -19,6 +19,10 @@ import {
|
|
|
19
19
|
// Define types for the context value
|
|
20
20
|
export interface ConfigurationContextValue {
|
|
21
21
|
companySectors: string[];
|
|
22
|
+
companyLifecycleStages?: { id: string; name: string }[];
|
|
23
|
+
companyTypes?: { id: string; name: string }[];
|
|
24
|
+
companyQualificationStatuses?: { id: string; name: string }[];
|
|
25
|
+
companyRevenueRanges?: { id: string; name: string }[];
|
|
22
26
|
dealCategories: string[];
|
|
23
27
|
dealPipelineStatuses: string[];
|
|
24
28
|
dealStages: DealStage[];
|
|
@@ -30,6 +34,8 @@ export interface ConfigurationContextValue {
|
|
|
30
34
|
darkModeLogo: string;
|
|
31
35
|
lightModeLogo: string;
|
|
32
36
|
contactGender: ContactGender[];
|
|
37
|
+
externalHeartbeatStatuses?: { id: string; name: string; color: string }[];
|
|
38
|
+
internalHeartbeatStatuses?: { id: string; name: string; color: string }[];
|
|
33
39
|
}
|
|
34
40
|
|
|
35
41
|
export interface ConfigurationProviderProps extends ConfigurationContextValue {
|
|
@@ -55,6 +61,10 @@ export const ConfigurationContext = createContext<ConfigurationContextValue>({
|
|
|
55
61
|
export const ConfigurationProvider = ({
|
|
56
62
|
children,
|
|
57
63
|
companySectors,
|
|
64
|
+
companyLifecycleStages,
|
|
65
|
+
companyTypes,
|
|
66
|
+
companyQualificationStatuses,
|
|
67
|
+
companyRevenueRanges,
|
|
58
68
|
dealCategories,
|
|
59
69
|
dealPipelineStatuses,
|
|
60
70
|
dealStages,
|
|
@@ -66,10 +76,16 @@ export const ConfigurationProvider = ({
|
|
|
66
76
|
taskStatuses,
|
|
67
77
|
title,
|
|
68
78
|
contactGender,
|
|
79
|
+
externalHeartbeatStatuses,
|
|
80
|
+
internalHeartbeatStatuses,
|
|
69
81
|
}: ConfigurationProviderProps) => (
|
|
70
82
|
<ConfigurationContext.Provider
|
|
71
83
|
value={{
|
|
72
84
|
companySectors,
|
|
85
|
+
companyLifecycleStages,
|
|
86
|
+
companyTypes,
|
|
87
|
+
companyQualificationStatuses,
|
|
88
|
+
companyRevenueRanges,
|
|
73
89
|
dealCategories,
|
|
74
90
|
dealPipelineStatuses,
|
|
75
91
|
dealStages,
|
|
@@ -81,6 +97,8 @@ export const ConfigurationProvider = ({
|
|
|
81
97
|
taskPriorities,
|
|
82
98
|
taskStatuses,
|
|
83
99
|
contactGender,
|
|
100
|
+
externalHeartbeatStatuses,
|
|
101
|
+
internalHeartbeatStatuses,
|
|
84
102
|
}}
|
|
85
103
|
>
|
|
86
104
|
{children}
|