react-native-chatbot-ai 0.1.70 → 0.1.72
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/lib/module/components/Drawer/SessionItem.js +13 -5
- package/lib/module/components/Drawer/SessionItem.js.map +1 -1
- package/lib/module/components/Drawer/SessionOptionsBottomSheet.js +96 -31
- package/lib/module/components/Drawer/SessionOptionsBottomSheet.js.map +1 -1
- package/lib/module/components/chat/footer/SuggestionsBar.js +6 -0
- package/lib/module/components/chat/footer/SuggestionsBar.js.map +1 -1
- package/lib/module/components/chat/footer/index.js +5 -0
- package/lib/module/components/chat/footer/index.js.map +1 -1
- package/lib/module/components/portal/BottomSheet.js +1 -1
- package/lib/module/components/portal/BottomSheet.js.map +1 -1
- package/lib/module/constants/query.js +1 -0
- package/lib/module/constants/query.js.map +1 -1
- package/lib/module/context/ChatContext.js +23 -6
- package/lib/module/context/ChatContext.js.map +1 -1
- package/lib/module/hooks/session/useSessionPin.js +26 -0
- package/lib/module/hooks/session/useSessionPin.js.map +1 -0
- package/lib/module/services/endpoints.js +2 -0
- package/lib/module/services/endpoints.js.map +1 -1
- package/lib/module/translation/resources/i18n.js +4 -0
- package/lib/module/translation/resources/i18n.js.map +1 -1
- package/lib/typescript/src/components/Drawer/SessionItem.d.ts.map +1 -1
- package/lib/typescript/src/components/Drawer/SessionOptionsBottomSheet.d.ts.map +1 -1
- package/lib/typescript/src/components/chat/footer/SuggestionsBar.d.ts.map +1 -1
- package/lib/typescript/src/components/chat/footer/index.d.ts.map +1 -1
- package/lib/typescript/src/constants/query.d.ts +1 -0
- package/lib/typescript/src/constants/query.d.ts.map +1 -1
- package/lib/typescript/src/context/ChatContext.d.ts.map +1 -1
- package/lib/typescript/src/hooks/session/useSessionPin.d.ts +6 -0
- package/lib/typescript/src/hooks/session/useSessionPin.d.ts.map +1 -0
- package/lib/typescript/src/services/endpoints.d.ts +2 -0
- package/lib/typescript/src/services/endpoints.d.ts.map +1 -1
- package/lib/typescript/src/translation/resources/i18n.d.ts.map +1 -1
- package/lib/typescript/src/types/dto.d.ts +1 -0
- package/lib/typescript/src/types/dto.d.ts.map +1 -1
- package/lib/typescript/src/types/ui.d.ts +4 -1
- package/lib/typescript/src/types/ui.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/components/Drawer/SessionItem.tsx +11 -3
- package/src/components/Drawer/SessionOptionsBottomSheet.tsx +111 -32
- package/src/components/chat/footer/SuggestionsBar.tsx +6 -0
- package/src/components/chat/footer/index.tsx +5 -0
- package/src/components/portal/BottomSheet.tsx +1 -1
- package/src/constants/query.ts +1 -0
- package/src/context/ChatContext.tsx +17 -4
- package/src/hooks/session/useSessionPin.ts +31 -0
- package/src/services/endpoints.ts +4 -0
- package/src/translation/resources/i18n.ts +4 -0
- package/src/types/dto.ts +1 -0
- package/src/types/ui.ts +7 -1
|
@@ -10,6 +10,8 @@ export const ENDPOINTS = {
|
|
|
10
10
|
updateSession: sessionId => `/assistant-service/v1/app/chat/sessions/${sessionId}`,
|
|
11
11
|
shareSession: sessionId => `/assistant-service/v1/app/chat/sessions/${sessionId}/share`,
|
|
12
12
|
deleteSession: sessionId => `/assistant-service/v1/app/chat/sessions/${sessionId}`,
|
|
13
|
+
pinSession: sessionId => `/assistant-service/v1/app/chat/sessions/${sessionId}/pin`,
|
|
14
|
+
unpinSession: sessionId => `/assistant-service/v1/app/chat/sessions/${sessionId}/unpin`,
|
|
13
15
|
sendFeedback: sessionId => `/assistant-service/v1/app/chat/sessions/${sessionId}/feedback`,
|
|
14
16
|
generateAudio: (sessionId, messageId) => `/assistant-service/v1/app/chat/sessions/${sessionId}/messages/${messageId}/speech`,
|
|
15
17
|
getExternalSessionInfo: sessionId => `/assistant-service/v1/app/chat/sessions/${sessionId}/tab-data`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ENDPOINTS","assistantService","getSuggestions","getSessionById","sessionId","getStreamMessage","createSession","searchSessions","updateSession","shareSession","deleteSession","sendFeedback","generateAudio","messageId","getExternalSessionInfo","uploaderService","upload","productService","search"],"sourceRoot":"../../../src","sources":["services/endpoints.ts"],"mappings":";;AAAA,OAAO,MAAMA,SAAS,GAAG;EACvBC,gBAAgB,EAAE;IAChBC,cAAc,EAAE,mDAAmD;IACnEC,cAAc,EAAGC,SAAiB,IAChC,2CAA2CA,SAAS,EAAE;IACxDC,gBAAgB,EAAGD,SAAiB,IAClC,2CAA2CA,SAAS,SAAS;IAC/DE,aAAa,EAAE,yCAAyC;IACxDC,cAAc,EAAE,gDAAgD;IAChEC,aAAa,EAAGJ,SAAiB,IAC/B,2CAA2CA,SAAS,EAAE;IACxDK,YAAY,EAAGL,SAAiB,IAC9B,2CAA2CA,SAAS,QAAQ;IAC9DM,aAAa,EAAGN,SAAiB,IAC/B,2CAA2CA,SAAS,EAAE;IACxDO,
|
|
1
|
+
{"version":3,"names":["ENDPOINTS","assistantService","getSuggestions","getSessionById","sessionId","getStreamMessage","createSession","searchSessions","updateSession","shareSession","deleteSession","pinSession","unpinSession","sendFeedback","generateAudio","messageId","getExternalSessionInfo","uploaderService","upload","productService","search"],"sourceRoot":"../../../src","sources":["services/endpoints.ts"],"mappings":";;AAAA,OAAO,MAAMA,SAAS,GAAG;EACvBC,gBAAgB,EAAE;IAChBC,cAAc,EAAE,mDAAmD;IACnEC,cAAc,EAAGC,SAAiB,IAChC,2CAA2CA,SAAS,EAAE;IACxDC,gBAAgB,EAAGD,SAAiB,IAClC,2CAA2CA,SAAS,SAAS;IAC/DE,aAAa,EAAE,yCAAyC;IACxDC,cAAc,EAAE,gDAAgD;IAChEC,aAAa,EAAGJ,SAAiB,IAC/B,2CAA2CA,SAAS,EAAE;IACxDK,YAAY,EAAGL,SAAiB,IAC9B,2CAA2CA,SAAS,QAAQ;IAC9DM,aAAa,EAAGN,SAAiB,IAC/B,2CAA2CA,SAAS,EAAE;IACxDO,UAAU,EAAGP,SAAiB,IAC5B,2CAA2CA,SAAS,MAAM;IAC5DQ,YAAY,EAAGR,SAAiB,IAC9B,2CAA2CA,SAAS,QAAQ;IAC9DS,YAAY,EAAGT,SAAiB,IAC9B,2CAA2CA,SAAS,WAAW;IACjEU,aAAa,EAAEA,CAACV,SAAiB,EAAEW,SAAiB,KAClD,2CAA2CX,SAAS,aAAaW,SAAS,SAAS;IACrFC,sBAAsB,EAAGZ,SAAiB,IACxC,2CAA2CA,SAAS;EACxD,CAAC;EACDa,eAAe,EAAE;IACfC,MAAM,EAAE;EACV,CAAC;EACDC,cAAc,EAAE;IACdC,MAAM,EAAE;EACV;AACF,CAAC","ignoreList":[]}
|
|
@@ -8,9 +8,13 @@ const i18nKey = {
|
|
|
8
8
|
chat_empty_description_2: 'Những gợi ý dành cho bạn:',
|
|
9
9
|
// Session options
|
|
10
10
|
session_options_title: 'Tuỳ chọn phiên chat',
|
|
11
|
+
session_pin: 'Ghim',
|
|
12
|
+
session_unpin: 'Bỏ ghim',
|
|
11
13
|
session_rename: 'Đổi tên',
|
|
12
14
|
session_share: 'Chia sẻ',
|
|
13
15
|
session_delete: 'Xoá',
|
|
16
|
+
pin_session_success: 'Đã ghim phiên chat',
|
|
17
|
+
unpin_session_success: 'Đã bỏ ghim phiên chat',
|
|
14
18
|
// Attachment bottom sheet
|
|
15
19
|
attachment_options_title: 'Tuỳ chọn thêm',
|
|
16
20
|
attachment_photo_library: 'Thư viện ảnh',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["i18nKey","input_placeholder","ai_answer_note","chat_empty_title","chat_empty_description_1","chat_empty_description_2","session_options_title","session_rename","session_share","session_delete","attachment_options_title","attachment_photo_library","attachment_camera","attachment_document","rename_session_title","rename_session_placeholder","rename_session_success","rename_session_cancel","rename_session_confirm","share_session_title","share_session_description","share_session_link_label","share_session_cancel","share_session_confirm","share_session_success","delete_session_title","delete_session_description","delete_session_cancel","delete_session_confirm","delete_session_success","recently_chat_history","stop_stream_alert","images_too_large","file_too_large","max_image_reached","max_file_reached","error_play_audio","commissions","points","answer","source","product","view_original_message","empty_product","vi"],"sourceRoot":"../../../../src","sources":["translation/resources/i18n.ts"],"mappings":";;AAAA,MAAMA,OAA+B,GAAG;EACtCC,iBAAiB,EAAE,0BAA0B;EAC7CC,cAAc,EACZ,gGAAgG;EAClGC,gBAAgB,EAAE,4BAA4B;EAC9CC,wBAAwB,EAAE,8CAA8C;EACxEC,wBAAwB,EAAE,2BAA2B;EAErD;EACAC,qBAAqB,EAAE,qBAAqB;EAC5CC,cAAc,EAAE,SAAS;EACzBC,aAAa,EAAE,SAAS;EACxBC,cAAc,EAAE,KAAK;
|
|
1
|
+
{"version":3,"names":["i18nKey","input_placeholder","ai_answer_note","chat_empty_title","chat_empty_description_1","chat_empty_description_2","session_options_title","session_pin","session_unpin","session_rename","session_share","session_delete","pin_session_success","unpin_session_success","attachment_options_title","attachment_photo_library","attachment_camera","attachment_document","rename_session_title","rename_session_placeholder","rename_session_success","rename_session_cancel","rename_session_confirm","share_session_title","share_session_description","share_session_link_label","share_session_cancel","share_session_confirm","share_session_success","delete_session_title","delete_session_description","delete_session_cancel","delete_session_confirm","delete_session_success","recently_chat_history","stop_stream_alert","images_too_large","file_too_large","max_image_reached","max_file_reached","error_play_audio","commissions","points","answer","source","product","view_original_message","empty_product","vi"],"sourceRoot":"../../../../src","sources":["translation/resources/i18n.ts"],"mappings":";;AAAA,MAAMA,OAA+B,GAAG;EACtCC,iBAAiB,EAAE,0BAA0B;EAC7CC,cAAc,EACZ,gGAAgG;EAClGC,gBAAgB,EAAE,4BAA4B;EAC9CC,wBAAwB,EAAE,8CAA8C;EACxEC,wBAAwB,EAAE,2BAA2B;EAErD;EACAC,qBAAqB,EAAE,qBAAqB;EAC5CC,WAAW,EAAE,MAAM;EACnBC,aAAa,EAAE,SAAS;EACxBC,cAAc,EAAE,SAAS;EACzBC,aAAa,EAAE,SAAS;EACxBC,cAAc,EAAE,KAAK;EACrBC,mBAAmB,EAAE,oBAAoB;EACzCC,qBAAqB,EAAE,uBAAuB;EAE9C;EACAC,wBAAwB,EAAE,eAAe;EACzCC,wBAAwB,EAAE,cAAc;EACxCC,iBAAiB,EAAE,UAAU;EAC7BC,mBAAmB,EAAE,UAAU;EAE/B;EACAC,oBAAoB,EAAE,oBAAoB;EAC1CC,0BAA0B,EAAE,qBAAqB;EACjDC,sBAAsB,EAAE,+BAA+B;EACvDC,qBAAqB,EAAE,KAAK;EAC5BC,sBAAsB,EAAE,SAAS;EAEjC;EACAC,mBAAmB,EAAE,oBAAoB;EACzCC,yBAAyB,EACvB,+GAA+G;EACjHC,wBAAwB,EAAE,kBAAkB;EAC5CC,oBAAoB,EAAE,KAAK;EAC3BC,qBAAqB,EAAE,UAAU;EACjCC,qBAAqB,EACnB,gEAAgE;EAElE;EACAC,oBAAoB,EAAE,gBAAgB;EACtCC,0BAA0B,EACxB,4EAA4E;EAC9EC,qBAAqB,EAAE,OAAO;EAC9BC,sBAAsB,EAAE,KAAK;EAC7BC,sBAAsB,EAAE,8BAA8B;EAEtDC,qBAAqB,EAAE,iBAAiB;EACxCC,iBAAiB,EAAE,yBAAyB;EAC5CC,gBAAgB,EAAE;AACpB;AACA;AACA,uDAAuD;EACrDC,cAAc,EAAE;AAClB;AACA;AACA,uDAAuD;EACrDC,iBAAiB,EAAE,yCAAyC;EAC5DC,gBAAgB,EAAE,oCAAoC;EACtDC,gBAAgB,EAAE,gDAAgD;EAElE;EACAC,WAAW,EAAE,MAAM;EACnBC,MAAM,EAAE,UAAU;EAElB;EACAC,MAAM,EAAE,SAAS;EACjBC,MAAM,EAAE,OAAO;EACfC,OAAO,EAAE,UAAU;EACnBC,qBAAqB,EAAE,qBAAqB;EAC5CC,aAAa,EAAE;AACjB,CAAC;AAED,eAAe;EACbC,EAAE,EAAEhD;AACN,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SessionItem.d.ts","sourceRoot":"","sources":["../../../../../src/components/Drawer/SessionItem.tsx"],"names":[],"mappings":"AASA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAIpD,UAAU,gBAAgB;IACxB,IAAI,EAAE,iBAAiB,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,CAAC;CAC5C;AAED,QAAA,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"SessionItem.d.ts","sourceRoot":"","sources":["../../../../../src/components/Drawer/SessionItem.tsx"],"names":[],"mappings":"AASA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAIpD,UAAU,gBAAgB;IACxB,IAAI,EAAE,iBAAiB,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,CAAC;CAC5C;AAED,QAAA,MAAM,WAAW,wDA4Cf,CAAC;AA2BH,eAAe,WAAW,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SessionOptionsBottomSheet.d.ts","sourceRoot":"","sources":["../../../../../src/components/Drawer/SessionOptionsBottomSheet.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SessionOptionsBottomSheet.d.ts","sourceRoot":"","sources":["../../../../../src/components/Drawer/SessionOptionsBottomSheet.tsx"],"names":[],"mappings":"AAWA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAiIpD,eAAO,MAAM,6BAA6B,GACxC,SAAS,iBAAiB,EAC1B,cAAc,MAAM,IAAI,EACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,KAAK,IAAI,SA0D9C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SuggestionsBar.d.ts","sourceRoot":"","sources":["../../../../../../src/components/chat/footer/SuggestionsBar.tsx"],"names":[],"mappings":"AAWA,OAAO,EACL,eAAe,EACf,WAAW,EACX,iBAAiB,EAElB,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"SuggestionsBar.d.ts","sourceRoot":"","sources":["../../../../../../src/components/chat/footer/SuggestionsBar.tsx"],"names":[],"mappings":"AAWA,OAAO,EACL,eAAe,EACf,WAAW,EACX,iBAAiB,EAElB,MAAM,gBAAgB,CAAC;AAMxB,UAAU,KAAK;IACb,WAAW,CAAC,EAAE,eAAe,EAAE,CAAC;IAChC,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACnC,aAAa,EAAE,CACb,OAAO,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,WAAW,EAAE,GAAG,SAAS,EACvC,OAAO,CAAC,EAAE,iBAAiB,KACxB,IAAI,CAAC;CACX;AAqBD,QAAA,MAAM,cAAc,GAAI,+DAKrB,KAAK,4CA8KP,CAAC;AAEF,eAAe,cAAc,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/chat/footer/index.tsx"],"names":[],"mappings":"AAmBA,OAAO,EAEL,YAAY,EAGb,MAAM,gBAAgB,CAAC;AAQxB,UAAU,gBAAgB;IACxB,WAAW,CAAC,EAAE,YAAY,CAAC;CAC5B;AAMD,QAAA,MAAM,UAAU,GAAI,iBAAiB,gBAAgB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/chat/footer/index.tsx"],"names":[],"mappings":"AAmBA,OAAO,EAEL,YAAY,EAGb,MAAM,gBAAgB,CAAC;AAQxB,UAAU,gBAAgB;IACxB,WAAW,CAAC,EAAE,YAAY,CAAC;CAC5B;AAMD,QAAA,MAAM,UAAU,GAAI,iBAAiB,gBAAgB,4CA+MpD,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../../src/constants/query.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU
|
|
1
|
+
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../../src/constants/query.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU;;;;;;;;;;;;CAYtB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatContext.d.ts","sourceRoot":"","sources":["../../../../src/context/ChatContext.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ChatContext.d.ts","sourceRoot":"","sources":["../../../../src/context/ChatContext.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AASxE,eAAO,MAAM,WAAW,0CAgBtB,CAAC;AAEH,eAAO,MAAM,cAAc,uBAAgC,CAAC;AAU5D,eAAO,MAAM,YAAY,GAAI,OAAO,iBAAiB,4CAoFpD,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { BaseResponse } from '../../types/common';
|
|
2
|
+
export declare const useSessionPin: () => import("@tanstack/react-query").UseMutationResult<BaseResponse<unknown> | undefined, unknown, {
|
|
3
|
+
sessionId: string;
|
|
4
|
+
pin: boolean;
|
|
5
|
+
}, unknown>;
|
|
6
|
+
//# sourceMappingURL=useSessionPin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSessionPin.d.ts","sourceRoot":"","sources":["../../../../../src/hooks/session/useSessionPin.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,eAAO,MAAM,aAAa;eAST,MAAM;SACZ,OAAO;WAcjB,CAAC"}
|
|
@@ -8,6 +8,8 @@ export declare const ENDPOINTS: {
|
|
|
8
8
|
updateSession: (sessionId: string) => string;
|
|
9
9
|
shareSession: (sessionId: string) => string;
|
|
10
10
|
deleteSession: (sessionId: string) => string;
|
|
11
|
+
pinSession: (sessionId: string) => string;
|
|
12
|
+
unpinSession: (sessionId: string) => string;
|
|
11
13
|
sendFeedback: (sessionId: string) => string;
|
|
12
14
|
generateAudio: (sessionId: string, messageId: string) => string;
|
|
13
15
|
getExternalSessionInfo: (sessionId: string) => string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"endpoints.d.ts","sourceRoot":"","sources":["../../../../src/services/endpoints.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS;;;oCAGU,MAAM;sCAEJ,MAAM;;;mCAIT,MAAM;kCAEP,MAAM;mCAEL,MAAM;
|
|
1
|
+
{"version":3,"file":"endpoints.d.ts","sourceRoot":"","sources":["../../../../src/services/endpoints.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS;;;oCAGU,MAAM;sCAEJ,MAAM;;;mCAIT,MAAM;kCAEP,MAAM;mCAEL,MAAM;gCAET,MAAM;kCAEJ,MAAM;kCAEN,MAAM;mCAEL,MAAM,aAAa,MAAM;4CAEhB,MAAM;;;;;;;;CAS7C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../../../../src/translation/resources/i18n.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../../../../src/translation/resources/i18n.ts"],"names":[],"mappings":";;;AA2EA,wBAEE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dto.d.ts","sourceRoot":"","sources":["../../../../src/types/dto.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"dto.d.ts","sourceRoot":"","sources":["../../../../src/types/dto.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,8 +9,11 @@ export interface WithToastProps {
|
|
|
9
9
|
dismiss: () => void;
|
|
10
10
|
}
|
|
11
11
|
export interface KBottomSheetPropsEnhance extends KBottomSheetProps {
|
|
12
|
-
header
|
|
12
|
+
header?: NonNullable<KBottomSheetProps['header']> & {
|
|
13
13
|
customRenderer?: (dismiss: () => void) => JSX.Element;
|
|
14
|
+
subTitle?: NonNullable<NonNullable<KBottomSheetProps['header']>['subTitle']> & {
|
|
15
|
+
numberOfLines?: number;
|
|
16
|
+
};
|
|
14
17
|
};
|
|
15
18
|
}
|
|
16
19
|
export interface WithBottomSheetProps {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../../../src/types/ui.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAE5B,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEzD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,CAEJ,OAAO,EAAE,cAAc,GAAG;QAAE,qBAAqB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;KAAE,KACvE,IAAI,CAAC;IACV,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,wBAAyB,SAAQ,iBAAiB;IACjE,MAAM,EAAE,iBAAiB,CAAC,QAAQ,CAAC,GAAG;
|
|
1
|
+
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../../../src/types/ui.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAE5B,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEzD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,CAEJ,OAAO,EAAE,cAAc,GAAG;QAAE,qBAAqB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;KAAE,KACvE,IAAI,CAAC;IACV,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,wBAAyB,SAAQ,iBAAiB;IACjE,MAAM,CAAC,EAAE,WAAW,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,GAAG;QAClD,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,GAAG,CAAC,OAAO,CAAC;QAEtD,QAAQ,CAAC,EAAE,WAAW,CACpB,WAAW,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CACrD,GAAG;YACF,aAAa,CAAC,EAAE,MAAM,CAAC;SACxB,CAAC;KACH,CAAC;CACH;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,CAAC,OAAO,EAAE,wBAAwB,KAAK,IAAI,CAAC;IAClD,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;IACrC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-chatbot-ai",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.72",
|
|
4
4
|
"description": "React Native library for Chatbot AI",
|
|
5
5
|
"main": "./lib/module/index.js",
|
|
6
6
|
"types": "./lib/typescript/src/index.d.ts",
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
"devDependencies": {
|
|
62
62
|
"@commitlint/config-conventional": "^19.8.1",
|
|
63
63
|
"@d11/react-native-fast-image": "8.12.0",
|
|
64
|
-
"@droppii/libs": "git+ssh://git@github.com:droppii/mobile-components.git#v1.
|
|
64
|
+
"@droppii/libs": "git+ssh://git@github.com:droppii/mobile-components.git#v1.1.13",
|
|
65
65
|
"@eslint/compat": "^1.3.2",
|
|
66
66
|
"@eslint/eslintrc": "^3.3.1",
|
|
67
67
|
"@eslint/js": "^9.35.0",
|
|
@@ -44,12 +44,19 @@ const SessionItem = memo<SessionItemProps>(({ item, isActive, onPress }) => {
|
|
|
44
44
|
</KLabel.Text>
|
|
45
45
|
</KContainer.Touchable>
|
|
46
46
|
{/* @ts-ignore */}
|
|
47
|
+
<KContainer.VisibleView visible={!!item?.pinned_at}>
|
|
48
|
+
<KImage.VectorIcons
|
|
49
|
+
name="thumbtack-b"
|
|
50
|
+
size={16}
|
|
51
|
+
color={KColors.gray.light}
|
|
52
|
+
style={styles.pinIcon}
|
|
53
|
+
/>
|
|
54
|
+
</KContainer.VisibleView>
|
|
47
55
|
<KContainer.Touchable onPress={handlePressOptions}>
|
|
48
56
|
<KImage.VectorIcons
|
|
49
57
|
name="more-horizontal-b"
|
|
50
58
|
size={20}
|
|
51
59
|
color={KColors.gray.dark}
|
|
52
|
-
style={styles.menuIcon}
|
|
53
60
|
/>
|
|
54
61
|
</KContainer.Touchable>
|
|
55
62
|
</KContainer.View>
|
|
@@ -74,9 +81,10 @@ const styles = StyleSheet.create({
|
|
|
74
81
|
},
|
|
75
82
|
sessionItemTouchable: {
|
|
76
83
|
flex: 1,
|
|
84
|
+
marginRight: KSpacingValue['0.5rem'],
|
|
77
85
|
},
|
|
78
|
-
|
|
79
|
-
|
|
86
|
+
pinIcon: {
|
|
87
|
+
marginRight: KSpacingValue['0.25rem'],
|
|
80
88
|
},
|
|
81
89
|
});
|
|
82
90
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { useCallback } from 'react';
|
|
1
2
|
import { StyleSheet } from 'react-native';
|
|
2
3
|
import {
|
|
3
4
|
KContainer,
|
|
@@ -13,6 +14,8 @@ import { openRenameSessionPopup } from './RenameSessionPopup';
|
|
|
13
14
|
import { openShareSessionPopup } from './ShareSessionPopup';
|
|
14
15
|
import { openDeleteSessionPopup } from './DeleteSessionPopup';
|
|
15
16
|
import { GAEvents } from '../../constants/events';
|
|
17
|
+
import { useSessionPin } from '../../hooks/session/useSessionPin';
|
|
18
|
+
import { useChatContext } from '../../context/ChatContext';
|
|
16
19
|
|
|
17
20
|
interface OptionItemProps {
|
|
18
21
|
icon: string;
|
|
@@ -36,6 +39,105 @@ const OptionItem = ({ icon, label, onPress, isDanger }: OptionItemProps) => {
|
|
|
36
39
|
);
|
|
37
40
|
};
|
|
38
41
|
|
|
42
|
+
const isSessionPinned = (session: SessionSearchItem) => !!session.pinned_at;
|
|
43
|
+
|
|
44
|
+
interface SessionOptionsSheetBodyProps {
|
|
45
|
+
session: SessionSearchItem;
|
|
46
|
+
onPinPress: () => void;
|
|
47
|
+
onRename: () => void;
|
|
48
|
+
onShare: () => void;
|
|
49
|
+
onDelete: () => void;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
const SessionOptionsSheetBody = ({
|
|
53
|
+
session,
|
|
54
|
+
onPinPress,
|
|
55
|
+
onRename,
|
|
56
|
+
onShare,
|
|
57
|
+
onDelete,
|
|
58
|
+
}: SessionOptionsSheetBodyProps) => {
|
|
59
|
+
const pinned = isSessionPinned(session);
|
|
60
|
+
|
|
61
|
+
return (
|
|
62
|
+
// @ts-ignore
|
|
63
|
+
<KContainer.View style={styles.container}>
|
|
64
|
+
<OptionItem
|
|
65
|
+
icon={pinned ? 'thumbtack-off-o' : 'thumbtack-o'}
|
|
66
|
+
label={trans(pinned ? 'session_unpin' : 'session_pin')}
|
|
67
|
+
onPress={onPinPress}
|
|
68
|
+
/>
|
|
69
|
+
<KContainer.View style={styles.divider} />
|
|
70
|
+
<OptionItem
|
|
71
|
+
icon="edit-o"
|
|
72
|
+
label={trans('session_rename')}
|
|
73
|
+
onPress={onRename}
|
|
74
|
+
/>
|
|
75
|
+
{/* @ts-ignore */}
|
|
76
|
+
<KContainer.View style={styles.divider} />
|
|
77
|
+
<OptionItem
|
|
78
|
+
icon="share-glob-o"
|
|
79
|
+
label={trans('session_share')}
|
|
80
|
+
onPress={onShare}
|
|
81
|
+
/>
|
|
82
|
+
{/* @ts-ignore */}
|
|
83
|
+
<KContainer.View style={styles.divider} />
|
|
84
|
+
<OptionItem
|
|
85
|
+
icon="trash-alt-o-1"
|
|
86
|
+
label={trans('session_delete')}
|
|
87
|
+
onPress={onDelete}
|
|
88
|
+
isDanger
|
|
89
|
+
/>
|
|
90
|
+
</KContainer.View>
|
|
91
|
+
);
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
interface SessionOptionsProps {
|
|
95
|
+
session: SessionSearchItem;
|
|
96
|
+
onRename: () => void;
|
|
97
|
+
onShare: () => void;
|
|
98
|
+
onDelete: () => void;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
const SessionOptions = ({
|
|
102
|
+
session,
|
|
103
|
+
onRename,
|
|
104
|
+
onShare,
|
|
105
|
+
onDelete,
|
|
106
|
+
}: SessionOptionsProps) => {
|
|
107
|
+
const { mutateAsync: setSessionPin } = useSessionPin();
|
|
108
|
+
const { notifyError } = useChatContext();
|
|
109
|
+
const pinned = isSessionPinned(session);
|
|
110
|
+
|
|
111
|
+
const handlePinPress = useCallback(async () => {
|
|
112
|
+
try {
|
|
113
|
+
await setSessionPin({ sessionId: session.id, pin: !pinned });
|
|
114
|
+
UIUtils.bottomSheet.dismiss();
|
|
115
|
+
UIUtils.toast.open({
|
|
116
|
+
title: trans(pinned ? 'unpin_session_success' : 'pin_session_success'),
|
|
117
|
+
});
|
|
118
|
+
} catch (err) {
|
|
119
|
+
const errorObj = err instanceof Error ? err : new Error(String(err));
|
|
120
|
+
notifyError?.({
|
|
121
|
+
errorClass: 'ChatbotAI',
|
|
122
|
+
errorMessage: errorObj.message,
|
|
123
|
+
name: 'SessionPinError',
|
|
124
|
+
message: `Session pin error id: ${session?.id}, error: ${errorObj.message}`,
|
|
125
|
+
stack: errorObj?.stack,
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
}, [pinned, session.id, setSessionPin, notifyError]);
|
|
129
|
+
|
|
130
|
+
return (
|
|
131
|
+
<SessionOptionsSheetBody
|
|
132
|
+
session={session}
|
|
133
|
+
onPinPress={handlePinPress}
|
|
134
|
+
onRename={onRename}
|
|
135
|
+
onShare={onShare}
|
|
136
|
+
onDelete={onDelete}
|
|
137
|
+
/>
|
|
138
|
+
);
|
|
139
|
+
};
|
|
140
|
+
|
|
39
141
|
export const openSessionOptionsBottomSheet = (
|
|
40
142
|
session: SessionSearchItem,
|
|
41
143
|
closeDrawer?: () => void,
|
|
@@ -43,7 +145,6 @@ export const openSessionOptionsBottomSheet = (
|
|
|
43
145
|
) => {
|
|
44
146
|
const handleRename = () => {
|
|
45
147
|
UIUtils.bottomSheet.dismiss();
|
|
46
|
-
// Close drawer first, then open popup
|
|
47
148
|
closeDrawer?.();
|
|
48
149
|
setTimeout(() => {
|
|
49
150
|
openRenameSessionPopup(session, () => {
|
|
@@ -60,7 +161,6 @@ export const openSessionOptionsBottomSheet = (
|
|
|
60
161
|
|
|
61
162
|
const handleShare = () => {
|
|
62
163
|
UIUtils.bottomSheet.dismiss();
|
|
63
|
-
// Close drawer first, then open popup
|
|
64
164
|
closeDrawer?.();
|
|
65
165
|
setTimeout(() => {
|
|
66
166
|
openShareSessionPopup(session);
|
|
@@ -72,51 +172,30 @@ export const openSessionOptionsBottomSheet = (
|
|
|
72
172
|
|
|
73
173
|
const handleDelete = () => {
|
|
74
174
|
UIUtils.bottomSheet.dismiss();
|
|
75
|
-
// Close drawer first, then open popup
|
|
76
175
|
closeDrawer?.();
|
|
77
176
|
setTimeout(() => {
|
|
78
177
|
openDeleteSessionPopup(session, logGA);
|
|
79
178
|
}, 300);
|
|
80
179
|
};
|
|
81
180
|
|
|
82
|
-
const OptionsContent = () => {
|
|
83
|
-
return (
|
|
84
|
-
// @ts-ignore
|
|
85
|
-
<KContainer.View style={styles.container}>
|
|
86
|
-
<OptionItem
|
|
87
|
-
icon="edit-o"
|
|
88
|
-
label={trans('session_rename')}
|
|
89
|
-
onPress={handleRename}
|
|
90
|
-
/>
|
|
91
|
-
{/* @ts-ignore */}
|
|
92
|
-
<KContainer.View style={styles.divider} />
|
|
93
|
-
<OptionItem
|
|
94
|
-
icon="share-glob-o"
|
|
95
|
-
label={trans('session_share')}
|
|
96
|
-
onPress={handleShare}
|
|
97
|
-
/>
|
|
98
|
-
{/* @ts-ignore */}
|
|
99
|
-
<KContainer.View style={styles.divider} />
|
|
100
|
-
<OptionItem
|
|
101
|
-
icon="trash-alt-o-1"
|
|
102
|
-
label={trans('session_delete')}
|
|
103
|
-
onPress={handleDelete}
|
|
104
|
-
isDanger
|
|
105
|
-
/>
|
|
106
|
-
</KContainer.View>
|
|
107
|
-
);
|
|
108
|
-
};
|
|
109
|
-
|
|
110
181
|
UIUtils.bottomSheet.open({
|
|
111
182
|
header: {
|
|
112
183
|
title: {
|
|
113
184
|
text: trans('session_options_title'),
|
|
114
185
|
},
|
|
186
|
+
subTitle: { text: session?.title, numberOfLines: 1 },
|
|
115
187
|
showCloseButton: true,
|
|
116
188
|
alignment: 'left',
|
|
117
189
|
},
|
|
118
190
|
body: {
|
|
119
|
-
renderContent: () =>
|
|
191
|
+
renderContent: () => (
|
|
192
|
+
<SessionOptions
|
|
193
|
+
session={session}
|
|
194
|
+
onRename={handleRename}
|
|
195
|
+
onShare={handleShare}
|
|
196
|
+
onDelete={handleDelete}
|
|
197
|
+
/>
|
|
198
|
+
),
|
|
120
199
|
},
|
|
121
200
|
touchOutsideToDismiss: true,
|
|
122
201
|
});
|
|
@@ -18,6 +18,7 @@ import {
|
|
|
18
18
|
import { GAEvents } from '../../../constants/events';
|
|
19
19
|
import useSessionStore from '../../../store/session';
|
|
20
20
|
import { useChatContext } from '../../../context/ChatContext';
|
|
21
|
+
import { IS_IOS } from '../../../constants';
|
|
21
22
|
|
|
22
23
|
interface Props {
|
|
23
24
|
suggestions?: ISuggestionItem[];
|
|
@@ -189,6 +190,7 @@ const SuggestionsBar = ({
|
|
|
189
190
|
keyExtractor={keyExtractor}
|
|
190
191
|
horizontal
|
|
191
192
|
renderItem={renderItem}
|
|
193
|
+
style={styles.flatListContainer}
|
|
192
194
|
contentContainerStyle={styles.contentContainer}
|
|
193
195
|
onScroll={onScroll}
|
|
194
196
|
scrollEventThrottle={16}
|
|
@@ -235,6 +237,10 @@ const styles = StyleSheet.create({
|
|
|
235
237
|
wrapper: {
|
|
236
238
|
position: 'relative',
|
|
237
239
|
},
|
|
240
|
+
flatListContainer: {
|
|
241
|
+
paddingBottom: IS_IOS ? 8 : 6,
|
|
242
|
+
marginBottom: -(IS_IOS ? 8 : 6),
|
|
243
|
+
},
|
|
238
244
|
contentContainer: {
|
|
239
245
|
gap: KSpacingValue['0.25rem'],
|
|
240
246
|
paddingHorizontal: KSpacingValue['0.5rem'],
|
|
@@ -171,6 +171,7 @@ const ChatFooter = ({ lastMessage }: IChatFooterProps) => {
|
|
|
171
171
|
renderItem={renderUploadItem}
|
|
172
172
|
horizontal
|
|
173
173
|
keyExtractor={uploadItemKeyExtractor}
|
|
174
|
+
style={styles.flatListContainer}
|
|
174
175
|
contentContainerStyle={styles.listUploadItem}
|
|
175
176
|
/>
|
|
176
177
|
</KContainer.View>
|
|
@@ -271,6 +272,10 @@ const styles = StyleSheet.create({
|
|
|
271
272
|
fontFamily: KFonts.regular,
|
|
272
273
|
marginVertical: IS_IOS ? 0 : -8,
|
|
273
274
|
},
|
|
275
|
+
flatListContainer: {
|
|
276
|
+
paddingBottom: IS_IOS ? 8 : 6,
|
|
277
|
+
marginBottom: -(IS_IOS ? 8 : 6),
|
|
278
|
+
},
|
|
274
279
|
listUploadItem: {
|
|
275
280
|
gap: KSpacingValue['0.75rem'],
|
|
276
281
|
paddingHorizontal: KSpacingValue['0.5rem'],
|
|
@@ -173,7 +173,7 @@ const BottomSheet = forwardRef<WithBottomSheetProps>((_, ref) => {
|
|
|
173
173
|
<KLabel.Text
|
|
174
174
|
typo={subTitle.typo || 'TextSmNormal'}
|
|
175
175
|
color={subTitle.color || KColors.gray.light}
|
|
176
|
-
numberOfLines={2}
|
|
176
|
+
numberOfLines={data?.header?.subTitle?.numberOfLines || 2}
|
|
177
177
|
marginT="0.25rem"
|
|
178
178
|
>
|
|
179
179
|
{subTitle.text}
|
package/src/constants/query.ts
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import { createContext, useContext, useEffect, useRef, useState } from 'react';
|
|
2
|
+
import { StyleSheet } from 'react-native';
|
|
2
3
|
import type { ChatContextType, ChatProviderProps } from '../types/chat';
|
|
3
4
|
import ChatBotAI from '../components/chat';
|
|
4
5
|
import Portal from '../components/portal';
|
|
5
6
|
import ReanimatedDrawerExample from '../components/Drawer';
|
|
6
7
|
import useSessionStore from '../store/session';
|
|
7
8
|
import useStreamMessageStore from '../store/streamMessage';
|
|
9
|
+
import { Z_INDEX_PRIORITY } from '../constants';
|
|
10
|
+
import { KContainer } from '@droppii/libs';
|
|
8
11
|
|
|
9
12
|
export const ChatContext = createContext<ChatContextType>({
|
|
10
13
|
apiAddress: '',
|
|
@@ -26,6 +29,14 @@ export const ChatContext = createContext<ChatContextType>({
|
|
|
26
29
|
|
|
27
30
|
export const useChatContext = () => useContext(ChatContext);
|
|
28
31
|
|
|
32
|
+
const styles = StyleSheet.create({
|
|
33
|
+
root: { flex: 1 },
|
|
34
|
+
portalLayer: {
|
|
35
|
+
...StyleSheet.absoluteFillObject,
|
|
36
|
+
zIndex: Z_INDEX_PRIORITY.popup,
|
|
37
|
+
},
|
|
38
|
+
});
|
|
39
|
+
|
|
29
40
|
export const ChatProvider = (props: ChatProviderProps) => {
|
|
30
41
|
const ref = useRef<any>(null);
|
|
31
42
|
const spanRef = useRef<any>(null);
|
|
@@ -100,12 +111,14 @@ export const ChatProvider = (props: ChatProviderProps) => {
|
|
|
100
111
|
setTabIndex,
|
|
101
112
|
}}
|
|
102
113
|
>
|
|
103
|
-
<
|
|
104
|
-
|
|
114
|
+
<KContainer.View style={styles.root}>
|
|
115
|
+
<ReanimatedDrawerExample ref={ref}>
|
|
105
116
|
<ChatBotAI />
|
|
117
|
+
</ReanimatedDrawerExample>
|
|
118
|
+
<KContainer.View style={styles.portalLayer} pointerEvents="box-none">
|
|
106
119
|
<Portal />
|
|
107
|
-
|
|
108
|
-
</
|
|
120
|
+
</KContainer.View>
|
|
121
|
+
</KContainer.View>
|
|
109
122
|
</ChatContext.Provider>
|
|
110
123
|
);
|
|
111
124
|
};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { useMutation, useQueryClient } from '@tanstack/react-query';
|
|
2
|
+
import { QUERY_KEYS } from '../../constants/query';
|
|
3
|
+
import { apiInstance } from '../../services/apis';
|
|
4
|
+
import { ENDPOINTS } from '../../services/endpoints';
|
|
5
|
+
import { BaseResponse } from '../../types/common';
|
|
6
|
+
|
|
7
|
+
export const useSessionPin = () => {
|
|
8
|
+
const queryClient = useQueryClient();
|
|
9
|
+
|
|
10
|
+
return useMutation({
|
|
11
|
+
mutationKey: [QUERY_KEYS.SESSION_PIN],
|
|
12
|
+
mutationFn: async ({
|
|
13
|
+
sessionId,
|
|
14
|
+
pin,
|
|
15
|
+
}: {
|
|
16
|
+
sessionId: string;
|
|
17
|
+
pin: boolean;
|
|
18
|
+
}) => {
|
|
19
|
+
const url = pin
|
|
20
|
+
? ENDPOINTS.assistantService.pinSession(sessionId)
|
|
21
|
+
: ENDPOINTS.assistantService.unpinSession(sessionId);
|
|
22
|
+
const res = await apiInstance?.put<BaseResponse<unknown>>(url);
|
|
23
|
+
return res?.data;
|
|
24
|
+
},
|
|
25
|
+
onSuccess: () => {
|
|
26
|
+
queryClient.refetchQueries({
|
|
27
|
+
queryKey: [QUERY_KEYS.SEARCH_SESSIONS],
|
|
28
|
+
});
|
|
29
|
+
},
|
|
30
|
+
});
|
|
31
|
+
};
|
|
@@ -13,6 +13,10 @@ export const ENDPOINTS = {
|
|
|
13
13
|
`/assistant-service/v1/app/chat/sessions/${sessionId}/share`,
|
|
14
14
|
deleteSession: (sessionId: string) =>
|
|
15
15
|
`/assistant-service/v1/app/chat/sessions/${sessionId}`,
|
|
16
|
+
pinSession: (sessionId: string) =>
|
|
17
|
+
`/assistant-service/v1/app/chat/sessions/${sessionId}/pin`,
|
|
18
|
+
unpinSession: (sessionId: string) =>
|
|
19
|
+
`/assistant-service/v1/app/chat/sessions/${sessionId}/unpin`,
|
|
16
20
|
sendFeedback: (sessionId: string) =>
|
|
17
21
|
`/assistant-service/v1/app/chat/sessions/${sessionId}/feedback`,
|
|
18
22
|
generateAudio: (sessionId: string, messageId: string) =>
|
|
@@ -8,9 +8,13 @@ const i18nKey: Record<string, string> = {
|
|
|
8
8
|
|
|
9
9
|
// Session options
|
|
10
10
|
session_options_title: 'Tuỳ chọn phiên chat',
|
|
11
|
+
session_pin: 'Ghim',
|
|
12
|
+
session_unpin: 'Bỏ ghim',
|
|
11
13
|
session_rename: 'Đổi tên',
|
|
12
14
|
session_share: 'Chia sẻ',
|
|
13
15
|
session_delete: 'Xoá',
|
|
16
|
+
pin_session_success: 'Đã ghim phiên chat',
|
|
17
|
+
unpin_session_success: 'Đã bỏ ghim phiên chat',
|
|
14
18
|
|
|
15
19
|
// Attachment bottom sheet
|
|
16
20
|
attachment_options_title: 'Tuỳ chọn thêm',
|
package/src/types/dto.ts
CHANGED
package/src/types/ui.ts
CHANGED
|
@@ -14,8 +14,14 @@ export interface WithToastProps {
|
|
|
14
14
|
}
|
|
15
15
|
|
|
16
16
|
export interface KBottomSheetPropsEnhance extends KBottomSheetProps {
|
|
17
|
-
header
|
|
17
|
+
header?: NonNullable<KBottomSheetProps['header']> & {
|
|
18
18
|
customRenderer?: (dismiss: () => void) => JSX.Element;
|
|
19
|
+
|
|
20
|
+
subTitle?: NonNullable<
|
|
21
|
+
NonNullable<KBottomSheetProps['header']>['subTitle']
|
|
22
|
+
> & {
|
|
23
|
+
numberOfLines?: number;
|
|
24
|
+
};
|
|
19
25
|
};
|
|
20
26
|
}
|
|
21
27
|
|