@@ -4,6 +4,7 @@ import { Subject } from 'rxjs';
44import debug from 'debug' ;
55
66import { ApiService } from '@shared/services/api/api.service' ;
7+ import { ShareLinksApiService } from '@root/app/share-links/services/share-links-api.service' ;
78import { DataService } from '@shared/services/data/data.service' ;
89import { MessageService } from '@shared/services/message/message.service' ;
910
@@ -16,6 +17,8 @@ import {
1617 ShareVO ,
1718} from '@root/app/models' ;
1819
20+ import { ShareLink } from '@root/app/share-links/models/share-link' ;
21+
1922import {
2023 FolderResponse ,
2124 RecordResponse ,
@@ -124,6 +127,7 @@ export class EditService {
124127
125128 constructor (
126129 private api : ApiService ,
130+ private shareApi : ShareLinksApiService ,
127131 private message : MessageService ,
128132 private folderPicker : FolderPickerService ,
129133 private dataService : DataService ,
@@ -252,11 +256,14 @@ export class EditService {
252256 const response : ShareResponse = await this . api . share . getShareLink (
253257 items [ 0 ] ,
254258 ) ;
259+ const newShareLink = await this . fetchShareLinkFromResponse ( response ) ;
260+
255261 actionDeferred . resolve ( ) ;
256262 this . dialog . open ( SharingComponent , {
257263 data : {
258264 item : items [ 0 ] ,
259265 link : response . getShareByUrlVO ( ) ,
266+ newShare : newShareLink ,
260267 } ,
261268 } ) ;
262269 break ;
@@ -416,7 +423,7 @@ export class EditService {
416423 } ) ;
417424 }
418425
419- if ( recordResponse ) {
426+ if ( recordResponse && recordResponse . length > 0 ) {
420427 const res = recordResponse [ 0 ] ;
421428
422429 const newData : RecordVOData = {
@@ -521,17 +528,26 @@ export class EditService {
521528
522529 async openShareDialog ( item : ItemVO ) {
523530 const response = await this . api . share . getShareLink ( item ) ;
531+ const newShareLink = await this . fetchShareLinkFromResponse ( response ) ;
524532 if ( this . device . isMobile ( ) ) {
525533 try {
526534 this . dialog . open ( SharingComponent , {
527535 panelClass : 'dialog' ,
528- data : { item, link : response . getShareByUrlVO ( ) } ,
536+ data : {
537+ item,
538+ link : response . getShareByUrlVO ( ) ,
539+ newShare : newShareLink ,
540+ } ,
529541 } ) ;
530542 } catch ( err ) { }
531543 } else {
532544 try {
533545 this . dialog . open ( SharingDialogComponent , {
534- data : { item, link : response . getShareByUrlVO ( ) } ,
546+ data : {
547+ item,
548+ link : response . getShareByUrlVO ( ) ,
549+ newShare : newShareLink ,
550+ } ,
535551 width : '600px' ,
536552 panelClass : 'dialog' ,
537553 } ) ;
@@ -548,6 +564,18 @@ export class EditService {
548564 } ) ;
549565 }
550566
567+ private async fetchShareLinkFromResponse (
568+ response : ShareResponse ,
569+ ) : Promise < ShareLink | undefined > {
570+ if ( response . getShareByUrlVO ( ) ) {
571+ const shareResponse = await this . shareApi . getShareLinksById ( [
572+ response . getShareByUrlVO ( ) . shareby_urlId ,
573+ ] ) ;
574+ return shareResponse [ 0 ] ;
575+ }
576+ return undefined ;
577+ }
578+
551579 async openTagsDialog ( item : ItemVO , type : string ) {
552580 this . dialog . open ( EditTagsComponent , {
553581 data : { item, type } ,
0 commit comments