@haseeba393/react-native-zendesk 2.2.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/LICENSE +21 -0
- package/README.md +171 -0
- package/android/build.gradle +55 -0
- package/android/src/main/AndroidManifest.xml +1 -0
- package/android/src/main/java/com/rnzendesk/ZendeskHelpCenterViewManager.kt +38 -0
- package/android/src/main/java/com/rnzendesk/ZendeskModule.kt +341 -0
- package/android/src/main/java/com/rnzendesk/ZendeskPackage.kt +59 -0
- package/ios/RNZendeskHelpCenterView.h +9 -0
- package/ios/RNZendeskHelpCenterView.m +43 -0
- package/ios/RNZendeskHelpCenterViewManager.m +19 -0
- package/ios/RNZendeskModule.h +13 -0
- package/ios/RNZendeskModule.mm +515 -0
- package/package.json +63 -0
- package/react-native-zendesk.podspec +38 -0
- package/src/ZendeskHelpCenterView.tsx +13 -0
- package/src/fabric/ZendeskHelpCenterViewNativeComponent.ts +13 -0
- package/src/index.ts +57 -0
- package/src/specs/NativeZendesk.ts +53 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { StyleProp, ViewStyle } from 'react-native';
|
|
3
|
+
import NativeComponent, {
|
|
4
|
+
type ZendeskHelpCenterViewProps,
|
|
5
|
+
} from './fabric/ZendeskHelpCenterViewNativeComponent';
|
|
6
|
+
|
|
7
|
+
type Props = Omit<ZendeskHelpCenterViewProps, 'style'> & {
|
|
8
|
+
style?: StyleProp<ViewStyle>;
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export function ZendeskHelpCenterView(props: Props) {
|
|
12
|
+
return <NativeComponent {...props} />;
|
|
13
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { HostComponent, ViewProps } from 'react-native';
|
|
2
|
+
import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
|
|
3
|
+
import type { WithDefault } from 'react-native/Libraries/Types/CodegenTypes';
|
|
4
|
+
|
|
5
|
+
export interface ZendeskHelpCenterViewProps extends ViewProps {
|
|
6
|
+
url?: string;
|
|
7
|
+
originWhitelist?: ReadonlyArray<string>;
|
|
8
|
+
javaScriptEnabled?: WithDefault<boolean, true>;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export default codegenNativeComponent<ZendeskHelpCenterViewProps>(
|
|
12
|
+
'RNZendeskHelpCenterView'
|
|
13
|
+
) as HostComponent<ZendeskHelpCenterViewProps>;
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import NativeZendesk, {
|
|
2
|
+
type ZendeskConfig,
|
|
3
|
+
type ZendeskCustomField,
|
|
4
|
+
type ZendeskTicketRequest,
|
|
5
|
+
} from './specs/NativeZendesk';
|
|
6
|
+
export { ZendeskHelpCenterView } from './ZendeskHelpCenterView';
|
|
7
|
+
|
|
8
|
+
export async function initializeZendesk(config: ZendeskConfig): Promise<boolean> {
|
|
9
|
+
return NativeZendesk.initialize(config);
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export async function getZendeskArticles(
|
|
13
|
+
locale?: string,
|
|
14
|
+
labels?: string[],
|
|
15
|
+
page?: number,
|
|
16
|
+
perPage?: number
|
|
17
|
+
) {
|
|
18
|
+
return NativeZendesk.getArticles(locale, labels, page, perPage);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export async function getZendeskArticle(articleId: number, locale?: string) {
|
|
22
|
+
return NativeZendesk.getArticle(articleId, locale);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export async function searchZendeskArticles(
|
|
26
|
+
query: string,
|
|
27
|
+
locale?: string,
|
|
28
|
+
page?: number,
|
|
29
|
+
perPage?: number
|
|
30
|
+
) {
|
|
31
|
+
return NativeZendesk.searchArticles(query, locale, page, perPage);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export async function createZendeskTicket(request: ZendeskTicketRequest) {
|
|
35
|
+
return NativeZendesk.createTicket(request);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export async function openZendeskHelpCenter() {
|
|
39
|
+
return NativeZendesk.openHelpCenter();
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export async function openZendeskArticle(articleId: number) {
|
|
43
|
+
return NativeZendesk.openArticle(articleId);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export async function openZendeskContactSupport() {
|
|
47
|
+
return NativeZendesk.openContactSupport();
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export async function openZendeskContactSupportWithDetails(
|
|
51
|
+
email: string,
|
|
52
|
+
customFields: ReadonlyArray<ZendeskCustomField>
|
|
53
|
+
) {
|
|
54
|
+
return NativeZendesk.openContactSupportWithDetails(email, customFields);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export type { ZendeskCustomField };
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { TurboModule } from 'react-native';
|
|
2
|
+
import { TurboModuleRegistry } from 'react-native';
|
|
3
|
+
|
|
4
|
+
export type ZendeskConfig = {
|
|
5
|
+
subdomain?: string;
|
|
6
|
+
zendeskUrl?: string;
|
|
7
|
+
appId?: string;
|
|
8
|
+
clientId?: string;
|
|
9
|
+
name?: string;
|
|
10
|
+
email?: string;
|
|
11
|
+
apiToken?: string;
|
|
12
|
+
locale?: string;
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
export type ZendeskTicketRequest = {
|
|
16
|
+
subject: string;
|
|
17
|
+
description: string;
|
|
18
|
+
requesterName?: string;
|
|
19
|
+
requesterEmail?: string;
|
|
20
|
+
tags?: string[];
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
export type ZendeskCustomField = {
|
|
24
|
+
key: string;
|
|
25
|
+
value: string;
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
export interface Spec extends TurboModule {
|
|
29
|
+
initialize(config: ZendeskConfig): Promise<boolean>;
|
|
30
|
+
getArticles(
|
|
31
|
+
locale?: string,
|
|
32
|
+
labels?: string[],
|
|
33
|
+
page?: number,
|
|
34
|
+
perPage?: number
|
|
35
|
+
): Promise<Record<string, unknown>>;
|
|
36
|
+
getArticle(articleId: number, locale?: string): Promise<Record<string, unknown>>;
|
|
37
|
+
searchArticles(
|
|
38
|
+
query: string,
|
|
39
|
+
locale?: string,
|
|
40
|
+
page?: number,
|
|
41
|
+
perPage?: number
|
|
42
|
+
): Promise<Record<string, unknown>>;
|
|
43
|
+
createTicket(request: ZendeskTicketRequest): Promise<Record<string, unknown>>;
|
|
44
|
+
openHelpCenter(): Promise<boolean>;
|
|
45
|
+
openArticle(articleId: number): Promise<boolean>;
|
|
46
|
+
openContactSupport(): Promise<boolean>;
|
|
47
|
+
openContactSupportWithDetails(
|
|
48
|
+
email: string,
|
|
49
|
+
customFields: ReadonlyArray<ZendeskCustomField>
|
|
50
|
+
): Promise<boolean>;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export default TurboModuleRegistry.getEnforcing<Spec>('RNZendesk');
|