Eduard Kuzmenko
4 years ago
8 changed files with 146 additions and 121 deletions
@ -0,0 +1,100 @@ |
|||||||
|
import { PopupButton } from "."; |
||||||
|
import appChatsManager from "../../lib/appManagers/appChatsManager"; |
||||||
|
import appMessagesManager from "../../lib/appManagers/appMessagesManager"; |
||||||
|
import appPeersManager, { PeerType } from "../../lib/appManagers/appPeersManager"; |
||||||
|
import PopupPeer from "./peer"; |
||||||
|
|
||||||
|
export default class PopupDeleteDialog { |
||||||
|
constructor(peerId: number, peerType: PeerType = appPeersManager.getDialogType(peerId)) { |
||||||
|
let firstName = appPeersManager.getPeerTitle(peerId, false, true); |
||||||
|
|
||||||
|
let callbackFlush = (justClear?: true) => { |
||||||
|
appMessagesManager.flushHistory(peerId, justClear); |
||||||
|
}; |
||||||
|
|
||||||
|
let callbackLeave = () => { |
||||||
|
appChatsManager.leave(-peerId); |
||||||
|
}; |
||||||
|
|
||||||
|
let title: string, description: string, buttons: PopupButton[]; |
||||||
|
switch(peerType) { |
||||||
|
case 'channel': { |
||||||
|
title = 'Leave Channel?'; |
||||||
|
description = `Are you sure you want to leave this channel?`; |
||||||
|
buttons = [{ |
||||||
|
text: 'LEAVE ' + firstName, |
||||||
|
isDanger: true, |
||||||
|
callback: callbackLeave |
||||||
|
}]; |
||||||
|
|
||||||
|
break; |
||||||
|
} |
||||||
|
|
||||||
|
case 'megagroup': { |
||||||
|
title = 'Leave Group?'; |
||||||
|
description = `Are you sure you want to leave this group?`; |
||||||
|
buttons = [{ |
||||||
|
text: 'LEAVE ' + firstName, |
||||||
|
isDanger: true, |
||||||
|
callback: callbackLeave |
||||||
|
}]; |
||||||
|
|
||||||
|
break; |
||||||
|
} |
||||||
|
|
||||||
|
case 'chat': { |
||||||
|
title = 'Delete Chat?'; |
||||||
|
description = `Are you sure you want to delete chat with <b>${firstName}</b>?`; |
||||||
|
buttons = [{ |
||||||
|
text: 'DELETE FOR ME AND ' + firstName, |
||||||
|
isDanger: true, |
||||||
|
callback: () => callbackFlush() |
||||||
|
}, { |
||||||
|
text: 'DELETE JUST FOR ME', |
||||||
|
isDanger: true, |
||||||
|
callback: () => callbackFlush(true) |
||||||
|
}]; |
||||||
|
|
||||||
|
break; |
||||||
|
} |
||||||
|
|
||||||
|
case 'saved': { |
||||||
|
title = 'Delete Saved Messages?'; |
||||||
|
description = `Are you sure you want to delete all your saved messages?`; |
||||||
|
buttons = [{ |
||||||
|
text: 'DELETE SAVED MESSAGES', |
||||||
|
isDanger: true, |
||||||
|
callback: () => callbackFlush() |
||||||
|
}]; |
||||||
|
|
||||||
|
break; |
||||||
|
} |
||||||
|
|
||||||
|
case 'group': { |
||||||
|
title = 'Delete and leave Group?'; |
||||||
|
description = `Are you sure you want to delete all message history and leave <b>${firstName}</b>?`; |
||||||
|
buttons = [{ |
||||||
|
text: 'DELETE AND LEAVE ' + firstName, |
||||||
|
isDanger: true, |
||||||
|
callback: () => callbackLeave() |
||||||
|
}]; |
||||||
|
|
||||||
|
break; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
buttons.push({ |
||||||
|
text: 'CANCEL', |
||||||
|
isCancel: true |
||||||
|
}); |
||||||
|
|
||||||
|
let popup = new PopupPeer('popup-delete-chat', { |
||||||
|
peerId, |
||||||
|
title, |
||||||
|
description, |
||||||
|
buttons |
||||||
|
}); |
||||||
|
|
||||||
|
popup.show(); |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue