@knocklabs/react-core 0.3.1 → 0.3.2

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 (102) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/cjs/index.js +1 -1
  3. package/dist/cjs/modules/core/utils.js +1 -1
  4. package/dist/cjs/modules/core/utils.js.map +1 -1
  5. package/dist/cjs/modules/i18n/languages/en.js +1 -1
  6. package/dist/cjs/modules/i18n/languages/en.js.map +1 -1
  7. package/dist/cjs/modules/i18n/languages/index.js.map +1 -1
  8. package/dist/cjs/modules/ms-teams/context/KnockMsTeamsProvider.js +1 -1
  9. package/dist/cjs/modules/ms-teams/context/KnockMsTeamsProvider.js.map +1 -1
  10. package/dist/cjs/modules/ms-teams/hooks/useConnectedMsTeamsChannels.js +2 -0
  11. package/dist/cjs/modules/ms-teams/hooks/useConnectedMsTeamsChannels.js.map +1 -0
  12. package/dist/cjs/modules/ms-teams/hooks/useMsTeamsAuth.js +1 -1
  13. package/dist/cjs/modules/ms-teams/hooks/useMsTeamsAuth.js.map +1 -1
  14. package/dist/cjs/modules/ms-teams/hooks/useMsTeamsChannels.js +2 -0
  15. package/dist/cjs/modules/ms-teams/hooks/useMsTeamsChannels.js.map +1 -0
  16. package/dist/cjs/modules/ms-teams/hooks/useMsTeamsTeams.js +2 -0
  17. package/dist/cjs/modules/ms-teams/hooks/useMsTeamsTeams.js.map +1 -0
  18. package/dist/cjs/modules/slack/context/KnockSlackProvider.js +1 -1
  19. package/dist/cjs/modules/slack/context/KnockSlackProvider.js.map +1 -1
  20. package/dist/cjs/modules/slack/hooks/useConnectedSlackChannels.js.map +1 -1
  21. package/dist/cjs/modules/slack/hooks/useSlackAuth.js +1 -1
  22. package/dist/cjs/modules/slack/hooks/useSlackAuth.js.map +1 -1
  23. package/dist/cjs/modules/slack/hooks/useSlackChannels.js +1 -1
  24. package/dist/cjs/modules/slack/hooks/useSlackChannels.js.map +1 -1
  25. package/dist/cjs/modules/slack/hooks/useSlackConnectionStatus.js.map +1 -1
  26. package/dist/esm/index.mjs +36 -30
  27. package/dist/esm/index.mjs.map +1 -1
  28. package/dist/esm/modules/core/utils.mjs +1 -1
  29. package/dist/esm/modules/core/utils.mjs.map +1 -1
  30. package/dist/esm/modules/i18n/languages/en.mjs +3 -0
  31. package/dist/esm/modules/i18n/languages/en.mjs.map +1 -1
  32. package/dist/esm/modules/i18n/languages/index.mjs.map +1 -1
  33. package/dist/esm/modules/ms-teams/context/KnockMsTeamsProvider.mjs +23 -20
  34. package/dist/esm/modules/ms-teams/context/KnockMsTeamsProvider.mjs.map +1 -1
  35. package/dist/esm/modules/ms-teams/hooks/useConnectedMsTeamsChannels.mjs +78 -0
  36. package/dist/esm/modules/ms-teams/hooks/useConnectedMsTeamsChannels.mjs.map +1 -0
  37. package/dist/esm/modules/ms-teams/hooks/useMsTeamsAuth.mjs +4 -2
  38. package/dist/esm/modules/ms-teams/hooks/useMsTeamsAuth.mjs.map +1 -1
  39. package/dist/esm/modules/ms-teams/hooks/useMsTeamsChannels.mjs +41 -0
  40. package/dist/esm/modules/ms-teams/hooks/useMsTeamsChannels.mjs.map +1 -0
  41. package/dist/esm/modules/ms-teams/hooks/useMsTeamsTeams.mjs +50 -0
  42. package/dist/esm/modules/ms-teams/hooks/useMsTeamsTeams.mjs.map +1 -0
  43. package/dist/esm/modules/slack/context/KnockSlackProvider.mjs +26 -25
  44. package/dist/esm/modules/slack/context/KnockSlackProvider.mjs.map +1 -1
  45. package/dist/esm/modules/slack/hooks/useConnectedSlackChannels.mjs.map +1 -1
  46. package/dist/esm/modules/slack/hooks/useSlackAuth.mjs +15 -15
  47. package/dist/esm/modules/slack/hooks/useSlackAuth.mjs.map +1 -1
  48. package/dist/esm/modules/slack/hooks/useSlackChannels.mjs +10 -10
  49. package/dist/esm/modules/slack/hooks/useSlackChannels.mjs.map +1 -1
  50. package/dist/esm/modules/slack/hooks/useSlackConnectionStatus.mjs +6 -6
  51. package/dist/esm/modules/slack/hooks/useSlackConnectionStatus.mjs.map +1 -1
  52. package/dist/types/index.d.ts +1 -0
  53. package/dist/types/index.d.ts.map +1 -1
  54. package/dist/types/interfaces.d.ts +5 -0
  55. package/dist/types/interfaces.d.ts.map +1 -0
  56. package/dist/types/modules/core/utils.d.ts +2 -2
  57. package/dist/types/modules/core/utils.d.ts.map +1 -1
  58. package/dist/types/modules/i18n/languages/en.d.ts.map +1 -1
  59. package/dist/types/modules/i18n/languages/index.d.ts +3 -0
  60. package/dist/types/modules/i18n/languages/index.d.ts.map +1 -1
  61. package/dist/types/modules/ms-teams/hooks/index.d.ts +3 -0
  62. package/dist/types/modules/ms-teams/hooks/index.d.ts.map +1 -1
  63. package/dist/types/modules/ms-teams/hooks/useConnectedMsTeamsChannels.d.ts +15 -0
  64. package/dist/types/modules/ms-teams/hooks/useConnectedMsTeamsChannels.d.ts.map +1 -0
  65. package/dist/types/modules/ms-teams/hooks/useMsTeamsChannels.d.ts +14 -0
  66. package/dist/types/modules/ms-teams/hooks/useMsTeamsChannels.d.ts.map +1 -0
  67. package/dist/types/modules/ms-teams/hooks/useMsTeamsTeams.d.ts +13 -0
  68. package/dist/types/modules/ms-teams/hooks/useMsTeamsTeams.d.ts.map +1 -0
  69. package/dist/types/modules/ms-teams/index.d.ts +1 -0
  70. package/dist/types/modules/ms-teams/index.d.ts.map +1 -1
  71. package/dist/types/modules/ms-teams/interfaces.d.ts +11 -0
  72. package/dist/types/modules/ms-teams/interfaces.d.ts.map +1 -0
  73. package/dist/types/modules/slack/context/KnockSlackProvider.d.ts +12 -2
  74. package/dist/types/modules/slack/context/KnockSlackProvider.d.ts.map +1 -1
  75. package/dist/types/modules/slack/hooks/useConnectedSlackChannels.d.ts +6 -6
  76. package/dist/types/modules/slack/hooks/useConnectedSlackChannels.d.ts.map +1 -1
  77. package/dist/types/modules/slack/hooks/useSlackConnectionStatus.d.ts +1 -1
  78. package/dist/types/modules/slack/hooks/useSlackConnectionStatus.d.ts.map +1 -1
  79. package/dist/types/modules/slack/index.d.ts +1 -1
  80. package/dist/types/modules/slack/index.d.ts.map +1 -1
  81. package/dist/types/modules/slack/{constants.d.ts → interfaces.d.ts} +3 -5
  82. package/dist/types/modules/slack/interfaces.d.ts.map +1 -0
  83. package/package.json +3 -3
  84. package/src/index.ts +1 -0
  85. package/src/interfaces.ts +4 -0
  86. package/src/modules/core/utils.ts +3 -3
  87. package/src/modules/i18n/languages/en.ts +5 -0
  88. package/src/modules/i18n/languages/index.ts +3 -0
  89. package/src/modules/ms-teams/hooks/index.ts +3 -0
  90. package/src/modules/ms-teams/hooks/useConnectedMsTeamsChannels.ts +100 -0
  91. package/src/modules/ms-teams/hooks/useMsTeamsChannels.ts +53 -0
  92. package/src/modules/ms-teams/hooks/useMsTeamsTeams.ts +112 -0
  93. package/src/modules/ms-teams/index.ts +1 -0
  94. package/src/modules/ms-teams/interfaces.ts +11 -0
  95. package/src/modules/slack/context/KnockSlackProvider.tsx +25 -8
  96. package/src/modules/slack/hooks/useConnectedSlackChannels.ts +7 -6
  97. package/src/modules/slack/hooks/useSlackAuth.ts +5 -5
  98. package/src/modules/slack/hooks/useSlackChannels.ts +2 -2
  99. package/src/modules/slack/hooks/useSlackConnectionStatus.ts +3 -3
  100. package/src/modules/slack/index.ts +1 -1
  101. package/src/modules/slack/{constants.ts → interfaces.ts} +3 -4
  102. package/dist/types/modules/slack/constants.d.ts.map +0 -1
@@ -0,0 +1,100 @@
1
+ import { useKnockMsTeamsClient } from "..";
2
+ import { MsTeamsChannelConnection } from "@knocklabs/client";
3
+ import { GenericData } from "@knocklabs/types";
4
+ import { useState } from "react";
5
+ import useSWR from "swr";
6
+
7
+ import { RecipientObject } from "../../..";
8
+ import { useKnockClient } from "../../core";
9
+ import { useTranslations } from "../../i18n";
10
+
11
+ const QUERY_KEY = "MS_TEAMS_CONNECTED_CHANNELS";
12
+
13
+ type UseConnectedMsTeamsChannelsProps = {
14
+ msTeamsChannelsRecipientObject: RecipientObject;
15
+ };
16
+
17
+ type UseConnectedMsTeamsChannelsOutput = {
18
+ data: MsTeamsChannelConnection[] | null;
19
+ updateConnectedChannels: (
20
+ connectedChannels: MsTeamsChannelConnection[],
21
+ ) => Promise<void>;
22
+ loading: boolean;
23
+ error: string | null;
24
+ updating: boolean;
25
+ };
26
+
27
+ function useConnectedMsTeamsChannels({
28
+ msTeamsChannelsRecipientObject: { objectId, collection },
29
+ }: UseConnectedMsTeamsChannelsProps): UseConnectedMsTeamsChannelsOutput {
30
+ const { t } = useTranslations();
31
+ const knock = useKnockClient();
32
+ const { connectionStatus, knockMsTeamsChannelId } = useKnockMsTeamsClient();
33
+
34
+ const [error, setError] = useState<string | null>(null);
35
+ const [isUpdating, setIsUpdating] = useState(false);
36
+
37
+ const {
38
+ data: connectedChannels,
39
+ mutate,
40
+ isValidating,
41
+ isLoading,
42
+ } = useSWR<MsTeamsChannelConnection[]>(
43
+ // Only fetch when Microsoft Teams is connected
44
+ connectionStatus === "connected"
45
+ ? [QUERY_KEY, knockMsTeamsChannelId, collection, objectId]
46
+ : null,
47
+ async () => {
48
+ return knock.objects
49
+ .getChannelData({
50
+ collection,
51
+ objectId,
52
+ channelId: knockMsTeamsChannelId,
53
+ })
54
+ .then((res) => res.data?.connections ?? [])
55
+ .catch(() => []);
56
+ },
57
+ {
58
+ onSuccess: () => {
59
+ setError(null);
60
+ },
61
+ },
62
+ );
63
+
64
+ const updateConnectedChannels = async (
65
+ channelsToSendToKnock: MsTeamsChannelConnection[],
66
+ ) => {
67
+ setIsUpdating(true);
68
+ try {
69
+ await mutate(
70
+ () =>
71
+ knock.objects
72
+ .setChannelData({
73
+ objectId,
74
+ collection,
75
+ channelId: knockMsTeamsChannelId,
76
+ data: { connections: channelsToSendToKnock },
77
+ })
78
+ .then((res) => (res as GenericData).data?.connections ?? []),
79
+ {
80
+ populateCache: true,
81
+ revalidate: false,
82
+ optimisticData: channelsToSendToKnock,
83
+ },
84
+ );
85
+ } catch (_error) {
86
+ setError(t("msTeamsChannelSetError") || "");
87
+ }
88
+ setIsUpdating(false);
89
+ };
90
+
91
+ return {
92
+ data: connectedChannels ?? null,
93
+ updateConnectedChannels,
94
+ updating: isUpdating,
95
+ loading: isLoading || isValidating,
96
+ error,
97
+ };
98
+ }
99
+
100
+ export default useConnectedMsTeamsChannels;
@@ -0,0 +1,53 @@
1
+ import { GetMsTeamsChannelsResponse, MsTeamsChannel } from "@knocklabs/client";
2
+ import useSWR from "swr";
3
+
4
+ import { useKnockClient } from "../../core";
5
+ import { useKnockMsTeamsClient } from "../context";
6
+ import { MsTeamsChannelQueryOptions } from "../interfaces";
7
+
8
+ const QUERY_KEY = "MS_TEAMS_CHANNELS";
9
+
10
+ type UseMsTeamsChannelsProps = {
11
+ teamId?: string;
12
+ queryOptions?: MsTeamsChannelQueryOptions;
13
+ };
14
+
15
+ type UseMsTeamsChannelsOutput = {
16
+ data: MsTeamsChannel[];
17
+ isLoading: boolean;
18
+ refetch: () => void;
19
+ };
20
+
21
+ function useMsTeamsChannels({
22
+ teamId,
23
+ queryOptions,
24
+ }: UseMsTeamsChannelsProps): UseMsTeamsChannelsOutput {
25
+ const knock = useKnockClient();
26
+ const { knockMsTeamsChannelId, tenantId } = useKnockMsTeamsClient();
27
+
28
+ const fetchChannels = () =>
29
+ knock.msTeams.getChannels({
30
+ knockChannelId: knockMsTeamsChannelId,
31
+ tenant: tenantId,
32
+ teamId: teamId!,
33
+ queryOptions: {
34
+ $filter: queryOptions?.filter,
35
+ $select: queryOptions?.select,
36
+ },
37
+ });
38
+
39
+ const { data, isLoading, isValidating, mutate } =
40
+ useSWR<GetMsTeamsChannelsResponse>(
41
+ teamId ? [QUERY_KEY, teamId] : null,
42
+ fetchChannels,
43
+ { revalidateOnFocus: false },
44
+ );
45
+
46
+ return {
47
+ data: data?.ms_teams_channels ?? [],
48
+ isLoading: isLoading || isValidating,
49
+ refetch: () => mutate(),
50
+ };
51
+ }
52
+
53
+ export default useMsTeamsChannels;
@@ -0,0 +1,112 @@
1
+ import { GetMsTeamsTeamsResponse, MsTeamsTeam } from "@knocklabs/client";
2
+ import { useEffect, useMemo } from "react";
3
+ import useSWRInfinite from "swr/infinite";
4
+
5
+ import { useKnockClient } from "../../core";
6
+ import { useKnockMsTeamsClient } from "../context";
7
+ import { MsTeamsTeamQueryOptions } from "../interfaces";
8
+
9
+ const MAX_COUNT = 1000;
10
+
11
+ const QUERY_KEY = "MS_TEAMS_TEAMS";
12
+
13
+ type UseMsTeamsTeamsProps = {
14
+ queryOptions?: MsTeamsTeamQueryOptions;
15
+ };
16
+
17
+ type UseMsTeamsTeamsOutput = {
18
+ data: MsTeamsTeam[];
19
+ isLoading: boolean;
20
+ refetch: () => void;
21
+ };
22
+
23
+ type QueryKey = [key: string, skiptoken: string] | null;
24
+
25
+ function getQueryKey(
26
+ pageIndex: number,
27
+ previousPageData: GetMsTeamsTeamsResponse,
28
+ ): QueryKey {
29
+ // First page so just pass empty
30
+ if (pageIndex === 0) {
31
+ return [QUERY_KEY, ""];
32
+ }
33
+
34
+ // If there's no more data then return an empty next skiptoken
35
+ if (previousPageData && ["", null].includes(previousPageData.skip_token)) {
36
+ return null;
37
+ }
38
+
39
+ // Next skiptoken exists so pass it
40
+ return [QUERY_KEY, previousPageData.skip_token ?? ""];
41
+ }
42
+
43
+ function useMsTeamsTeams({
44
+ queryOptions = {},
45
+ }: UseMsTeamsTeamsProps): UseMsTeamsTeamsOutput {
46
+ const knock = useKnockClient();
47
+ const { knockMsTeamsChannelId, tenantId, connectionStatus } =
48
+ useKnockMsTeamsClient();
49
+
50
+ const fetchTeams = (queryKey: QueryKey) =>
51
+ knock.msTeams.getTeams({
52
+ knockChannelId: knockMsTeamsChannelId,
53
+ tenant: tenantId,
54
+ queryOptions: {
55
+ $skiptoken: queryKey?.[1],
56
+ $top: queryOptions?.limitPerPage,
57
+ $filter: queryOptions?.filter,
58
+ $select: queryOptions?.select,
59
+ },
60
+ });
61
+
62
+ const { data, error, isLoading, isValidating, setSize, mutate } =
63
+ useSWRInfinite<GetMsTeamsTeamsResponse>(getQueryKey, fetchTeams, {
64
+ initialSize: 0,
65
+ revalidateOnFocus: false,
66
+ });
67
+
68
+ const lastPage = data?.at(-1);
69
+ const hasNextPage = lastPage === undefined || !!lastPage.skip_token;
70
+
71
+ const teams = useMemo(
72
+ () =>
73
+ (data ?? [])
74
+ .flatMap((page) => page?.ms_teams_teams)
75
+ .filter((team) => !!team),
76
+ [data],
77
+ );
78
+
79
+ const maxCount = queryOptions?.maxCount || MAX_COUNT;
80
+
81
+ useEffect(() => {
82
+ if (
83
+ connectionStatus === "connected" &&
84
+ !error &&
85
+ hasNextPage &&
86
+ !isLoading &&
87
+ !isValidating &&
88
+ teams.length < maxCount
89
+ ) {
90
+ // Fetch a page at a time until we have nothing else left to fetch
91
+ // or we've already hit the max amount of teams to fetch
92
+ setSize((size) => size + 1);
93
+ }
94
+ }, [
95
+ teams.length,
96
+ setSize,
97
+ hasNextPage,
98
+ isLoading,
99
+ isValidating,
100
+ maxCount,
101
+ error,
102
+ connectionStatus,
103
+ ]);
104
+
105
+ return {
106
+ data: teams,
107
+ isLoading: isLoading || isValidating,
108
+ refetch: () => mutate(),
109
+ };
110
+ }
111
+
112
+ export default useMsTeamsTeams;
@@ -1,2 +1,3 @@
1
1
  export * from "./context";
2
2
  export * from "./hooks";
3
+ export * from "./interfaces";
@@ -0,0 +1,11 @@
1
+ export type MsTeamsTeamQueryOptions = {
2
+ maxCount?: number;
3
+ limitPerPage?: number;
4
+ filter?: string;
5
+ select?: string;
6
+ };
7
+
8
+ export type MsTeamsChannelQueryOptions = {
9
+ filter?: string;
10
+ select?: string;
11
+ };
@@ -8,6 +8,10 @@ import { ConnectionStatus } from "../hooks/useSlackConnectionStatus";
8
8
 
9
9
  export interface KnockSlackProviderState {
10
10
  knockSlackChannelId: string;
11
+ tenantId: string;
12
+ /**
13
+ * @deprecated Use `tenantId` instead. This field will be removed in a future release.
14
+ */
11
15
  tenant: string;
12
16
  connectionStatus: ConnectionStatus;
13
17
  setConnectionStatus: (connectionStatus: ConnectionStatus) => void;
@@ -20,14 +24,25 @@ export interface KnockSlackProviderState {
20
24
  const SlackProviderStateContext =
21
25
  React.createContext<KnockSlackProviderState | null>(null);
22
26
 
23
- export interface KnockSlackProviderProps {
24
- knockSlackChannelId: string;
25
- tenant: string;
26
- }
27
+ export type KnockSlackProviderProps =
28
+ | {
29
+ knockSlackChannelId: string;
30
+ /**
31
+ * @deprecated Use `tenantId` instead. This field will be removed in a future release.
32
+ */
33
+ tenant: string;
34
+ }
35
+ | {
36
+ knockSlackChannelId: string;
37
+ tenantId: string;
38
+ };
27
39
 
28
40
  export const KnockSlackProvider: React.FC<
29
41
  PropsWithChildren<KnockSlackProviderProps>
30
- > = ({ knockSlackChannelId, tenant, children }) => {
42
+ > = (props) => {
43
+ const { knockSlackChannelId, children } = props;
44
+ const tenantId = "tenantId" in props ? props.tenantId : props.tenant;
45
+
31
46
  const knock = useKnockClient();
32
47
 
33
48
  const {
@@ -37,13 +52,13 @@ export const KnockSlackProvider: React.FC<
37
52
  setErrorLabel,
38
53
  actionLabel,
39
54
  setActionLabel,
40
- } = useSlackConnectionStatus(knock, knockSlackChannelId, tenant);
55
+ } = useSlackConnectionStatus(knock, knockSlackChannelId, tenantId);
41
56
 
42
57
  return (
43
58
  <SlackProviderStateContext.Provider
44
59
  key={slackProviderKey({
45
60
  knockSlackChannelId,
46
- tenant,
61
+ tenantId,
47
62
  connectionStatus,
48
63
  errorLabel,
49
64
  })}
@@ -55,7 +70,9 @@ export const KnockSlackProvider: React.FC<
55
70
  actionLabel,
56
71
  setActionLabel,
57
72
  knockSlackChannelId,
58
- tenant,
73
+ // Assign the same value to both tenant and tenantId for backwards compatibility
74
+ tenant: tenantId,
75
+ tenantId,
59
76
  }}
60
77
  >
61
78
  {children}
@@ -1,19 +1,20 @@
1
- import { ContainerObject, useKnockSlackClient } from "..";
1
+ import { useKnockSlackClient } from "..";
2
2
  import { SlackChannelConnection } from "@knocklabs/client";
3
3
  import { useCallback, useEffect, useState } from "react";
4
4
 
5
+ import { RecipientObject } from "../../..";
5
6
  import { useKnockClient } from "../../core";
6
7
  import { useTranslations } from "../../i18n";
7
8
 
8
- type UseSlackChannelsProps = {
9
- slackChannelsRecipientObject: ContainerObject;
9
+ type UseConnectedSlackChannelsProps = {
10
+ slackChannelsRecipientObject: RecipientObject;
10
11
  };
11
12
 
12
- type UseSlackChannelOutput = {
13
+ type UseConnectedSlackChannelOutput = {
13
14
  data: SlackChannelConnection[] | null;
14
15
  updateConnectedChannels: (
15
16
  connectedChannels: SlackChannelConnection[],
16
- ) => void;
17
+ ) => Promise<void>;
17
18
  loading: boolean;
18
19
  error: string | null;
19
20
  updating: boolean;
@@ -21,7 +22,7 @@ type UseSlackChannelOutput = {
21
22
 
22
23
  function useConnectedSlackChannels({
23
24
  slackChannelsRecipientObject: { objectId, collection },
24
- }: UseSlackChannelsProps): UseSlackChannelOutput {
25
+ }: UseConnectedSlackChannelsProps): UseConnectedSlackChannelOutput {
25
26
  const { t } = useTranslations();
26
27
  const knock = useKnockClient();
27
28
  const { connectionStatus, knockSlackChannelId } = useKnockSlackClient();
@@ -23,7 +23,7 @@ function useSlackAuth(
23
23
  additionalScopes?: string[],
24
24
  ): UseSlackAuthOutput {
25
25
  const knock = useKnockClient();
26
- const { setConnectionStatus, knockSlackChannelId, tenant, setActionLabel } =
26
+ const { setConnectionStatus, knockSlackChannelId, tenantId, setActionLabel } =
27
27
  useKnockSlackClient();
28
28
 
29
29
  const combinedScopes =
@@ -36,7 +36,7 @@ function useSlackAuth(
36
36
  setConnectionStatus("disconnecting");
37
37
  try {
38
38
  const revoke = await knock.slack.revokeAccessToken({
39
- tenant,
39
+ tenant: tenantId,
40
40
  knockChannelId: knockSlackChannelId,
41
41
  });
42
42
 
@@ -51,7 +51,7 @@ function useSlackAuth(
51
51
  }, [
52
52
  setConnectionStatus,
53
53
  knock.slack,
54
- tenant,
54
+ tenantId,
55
55
  knockSlackChannelId,
56
56
  setActionLabel,
57
57
  ]);
@@ -61,7 +61,7 @@ function useSlackAuth(
61
61
  state: JSON.stringify({
62
62
  redirect_url: redirectUrl,
63
63
  access_token_object: {
64
- object_id: tenant,
64
+ object_id: tenantId,
65
65
  collection: TENANT_OBJECT_COLLECTION,
66
66
  },
67
67
  channel_id: knockSlackChannelId,
@@ -74,7 +74,7 @@ function useSlackAuth(
74
74
  return `${SLACK_AUTHORIZE_URL}?${new URLSearchParams(rawParams)}`;
75
75
  }, [
76
76
  redirectUrl,
77
- tenant,
77
+ tenantId,
78
78
  knockSlackChannelId,
79
79
  knock.apiKey,
80
80
  knock.userToken,
@@ -45,12 +45,12 @@ function useSlackChannels({
45
45
  queryOptions,
46
46
  }: UseSlackChannelsProps): UseSlackChannelOutput {
47
47
  const knock = useKnockClient();
48
- const { knockSlackChannelId, tenant, connectionStatus } =
48
+ const { knockSlackChannelId, tenantId, connectionStatus } =
49
49
  useKnockSlackClient();
50
50
 
51
51
  const fetchChannels = (queryKey: QueryKey) => {
52
52
  return knock.slack.getChannels({
53
- tenant,
53
+ tenant: tenantId,
54
54
  knockChannelId: knockSlackChannelId,
55
55
  queryOptions: {
56
56
  ...queryOptions,
@@ -34,7 +34,7 @@ const formatSlackErrorMessage = (errorMessage: string) => {
34
34
  function useSlackConnectionStatus(
35
35
  knock: Knock,
36
36
  knockSlackChannelId: string,
37
- tenant: string,
37
+ tenantId: string,
38
38
  ): UseSlackConnectionStatusOutput {
39
39
  const { t } = useTranslations();
40
40
  const [connectionStatus, setConnectionStatus] =
@@ -48,7 +48,7 @@ function useSlackConnectionStatus(
48
48
 
49
49
  try {
50
50
  const authRes = await knock.slack.authCheck({
51
- tenant,
51
+ tenant: tenantId,
52
52
  knockChannelId: knockSlackChannelId,
53
53
  });
54
54
 
@@ -87,7 +87,7 @@ function useSlackConnectionStatus(
87
87
  };
88
88
 
89
89
  checkAuthStatus();
90
- }, [connectionStatus, tenant, knockSlackChannelId, knock.slack, t]);
90
+ }, [connectionStatus, tenantId, knockSlackChannelId, knock.slack, t]);
91
91
 
92
92
  return {
93
93
  connectionStatus,
@@ -1,3 +1,3 @@
1
1
  export * from "./context";
2
2
  export * from "./hooks";
3
- export * from "./constants";
3
+ export * from "./interfaces";
@@ -1,7 +1,6 @@
1
- export type ContainerObject = {
2
- objectId: string;
3
- collection: string;
4
- };
1
+ import type { RecipientObject } from "../../interfaces";
2
+
3
+ export type ContainerObject = RecipientObject;
5
4
 
6
5
  export type SlackChannelQueryOptions = {
7
6
  maxCount?: number;
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/modules/slack/constants.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC"}