cognite-create 0.2.41 → 0.2.42
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/package.json
CHANGED
|
@@ -11,79 +11,72 @@ Always use semantic Tailwind color classes (e.g., bg-primary, text-primary, bord
|
|
|
11
11
|
Layout & Components
|
|
12
12
|
Make sure to put the components together in a cohesive manner.
|
|
13
13
|
Make sure to properly handle x and y values to proper scales.
|
|
14
|
-
Make sure you are properly handling timezoned dates
|
|
14
|
+
Make sure you are properly handling timezoned dates.
|
|
15
15
|
|
|
16
16
|
Chart Rendering Rules
|
|
17
|
-
Use direct hex colors: Avoid CSS variables like var(--color
|
|
17
|
+
Use direct hex colors: Avoid CSS variables like var(--color-\*) in stroke properties
|
|
18
18
|
Make sure charts have properly formatted value properties to display data.
|
|
19
19
|
Use real Cognite data from the SDK.
|
|
20
20
|
Be really careful with x chart values and make sure you are rendering them correctly. Keep consistent with date and timestamp formatting as this can cause rendering issues.
|
|
21
21
|
|
|
22
22
|
CogniteSDK Rules
|
|
23
23
|
|
|
24
|
-
|
|
25
|
-
# Cognite Configuration
|
|
26
|
-
NEXT_PUBLIC_COGNITE_PROJECT=
|
|
27
|
-
NEXT_PUBLIC_COGNITE_BASE_URL=
|
|
24
|
+
This is a client-side only application. All Cognite SDK calls are made directly from the browser.
|
|
28
25
|
|
|
29
|
-
|
|
30
|
-
NEXT_PUBLIC_COGNITE_CLIENT_ID=
|
|
31
|
-
COGNITE_CLIENT_SECRET=
|
|
26
|
+
Environment Variables
|
|
32
27
|
|
|
33
|
-
|
|
28
|
+
# Cognite Configuration
|
|
34
29
|
|
|
35
|
-
|
|
30
|
+
COGNITE_PROJECT=
|
|
31
|
+
COGNITE_BASE_URL=
|
|
36
32
|
|
|
37
|
-
|
|
33
|
+
# OIDC Authentication (Required for production)
|
|
38
34
|
|
|
39
|
-
|
|
35
|
+
COGNITE_CLIENT_ID=
|
|
40
36
|
|
|
41
|
-
|
|
37
|
+
SDK Usage
|
|
42
38
|
|
|
43
|
-
Use
|
|
39
|
+
The Cognite SDK is initialized and provided through the infrastructure components. Use the `useCDF` hook to access the authenticated SDK client in any component:
|
|
44
40
|
|
|
45
|
-
|
|
46
|
-
|
|
41
|
+
```tsx
|
|
42
|
+
import { useCDF } from "@/infrastructure/hooks/useCDF";
|
|
47
43
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
headers: {
|
|
51
|
-
Authorization: header,
|
|
52
|
-
"Content-Type": "application/x-www-form-urlencoded",
|
|
53
|
-
},
|
|
54
|
-
body: new URLSearchParams({
|
|
55
|
-
grant_type: "client_credentials",
|
|
56
|
-
}),
|
|
57
|
-
});
|
|
44
|
+
function MyComponent() {
|
|
45
|
+
const sdk = useCDF();
|
|
58
46
|
|
|
59
|
-
|
|
47
|
+
// Use sdk to make API calls
|
|
48
|
+
const timeSeries = await sdk.timeseries.list().autoPagingToArray();
|
|
49
|
+
}
|
|
50
|
+
```
|
|
60
51
|
|
|
61
|
-
|
|
62
|
-
return data.access_token;
|
|
63
|
-
};
|
|
52
|
+
All data fetching happens client-side. Use React Query for managing async data:
|
|
64
53
|
|
|
65
|
-
|
|
54
|
+
- Wrap SDK calls in custom hooks using `useQuery` or `useMutation`
|
|
55
|
+
- Handle loading and error states appropriately
|
|
56
|
+
- Cache data effectively to minimize API calls
|
|
66
57
|
|
|
67
|
-
|
|
58
|
+
Authentication is handled by the infrastructure layer - use the provided components from `/src/infrastructure`. The infrastructure handles token management and SDK initialization automatically.
|
|
68
59
|
|
|
69
|
-
|
|
60
|
+
Make sure to build fallbacks for any error or empty states.
|
|
70
61
|
|
|
71
|
-
|
|
62
|
+
Always run `npm run lint` after you make changes to make sure you have fixed all potential errors.
|
|
72
63
|
|
|
73
|
-
|
|
64
|
+
Date Format Fix: Convert Date objects to Unix timestamps (milliseconds) before sending to Cognite API, as it doesn't accept ISO strings.
|
|
74
65
|
|
|
75
|
-
|
|
66
|
+
Granularity/Aggregates Fix: Ensure aggregates are always provided when granularity is specified (Cognite API requirement), defaulting to "average" aggregation.
|
|
76
67
|
|
|
77
|
-
|
|
68
|
+
Aggregated Data Display: Update chart components to handle both regular datapoints (value) and aggregated datapoints (average, max, min, etc.) since granularity returns aggregated data.
|
|
78
69
|
|
|
79
|
-
Prefer select dropdowns with in
|
|
70
|
+
UI Enhancement: Prefer select dropdowns with built-in search for better user experience.
|
|
80
71
|
|
|
81
72
|
WATCH OUT FOR THIS BUG WITH SHADCN SELECTS:
|
|
82
73
|
A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.
|
|
83
74
|
|
|
84
75
|
src/components/ui/cognite/select.tsx (107:5) @ SelectItem
|
|
85
76
|
|
|
77
|
+
105 | }: React.ComponentProps<typeof SelectPrimitive.Item>) {
|
|
78
|
+
106 | return (
|
|
79
|
+
|
|
80
|
+
> 107 | <SelectPrimitive.Item
|
|
86
81
|
|
|
87
|
-
|
|
88
|
-
106 | return (
|
|
89
|
-
> 107 | <SelectPrimitive.Item
|
|
82
|
+
Use React best practices when calling useEffect, make sure we are using useMemo and useCallback effectively to avoid re-renders.
|