MS Teams - detect pop-out was opened - microsoft-teams

I have an MS Teams "Tab" application. It allows creating a Team tab as well as Personal Tabs. Teams has a feature of the "Pop out tab" button, which opens a clon on my app in the pop-up:
Is there a way how can I detect opening the "pop out"? For example, a user opened a file for editing in the tab and I don't want to allow him to edit it from the tab and pop-up simultaneously.
Also, is it possible to pass context/app state to the newly opened pop-out?

Currently it is not possible to detect pop-out was opened in teams and it is by design.
Microsoft will always focus on customer’s feedback and experience, some new features would be added to the services based on customers' feedback in the future, we also recommend you give your new idea in Teams UserVoice here.

Related

How to keep personal tab active while switching to other tabs in microsoft teams

We have embedded an external website as a personal tab in Microsoft Teams. We want to keep the tab active in the background even if the user switches away from the personal tab. How could we achieve this?

How to change app config dialog SIZE at Microsoft Team?

I'm creating a custom app to add to MS Teams tab, here is the dialog when I click add app to Teams Tab, I want to change the dialog size but cant find the solutions :(. Please help me if you know.
Add team tab dialog

Is it possible to launch the taskpane if certain conditions are met?

I want the user to press on a command button which will run an API. If the API returns results, I want this to launch the taskpane and then display the result of the API.
Is this possible?
If we speak about web add-ins the task pane is launched by the button click independently of API results. At runtime you may decided what to display on the task pane.
But if you mean a custom task pane as a part of COM add-in you can do whatever you like - hide, show and etc.
For web add-ins, launching a task pane after running some code/API is not possible today. We track Outlook add-in feature requests on our Tech Community Page. Please submit your request there and choose the appropriate label(s). Feature requests on Tech Community are considered, when we go through our planning process.
Here are two alternatives I would suggest considering to see if they can work for your scenario
adding a command with ExecuteFunction as an action https://learn.microsoft.com/en-us/office/dev/add-ins/reference/manifest/functionfile and launching a dialog (displayDialogAsync)
Or, run ExecuteFunction that adds notification message with an action link that user can click to open a taskpane https://learn.microsoft.com/en-us/javascript/api/outlook/office.notificationmessageaction?view=outlook-js-preview

Is TabDefault the only option for placing a group on ribbon?

After years of developing COM add-ins, I am now doing a outlook js add-in. So I am newbie to this enviroment.
I have a couple of questions regarding the ribbon architecture.
From what I have read, I believe the TabDefault is the only option for the ribbon group. I am trying to place my ribbon group at a specific location and emulate the COM add-in. For example, for my Outlook COM add-in I can place my options button that pops up a dialog on the TabMail ribbon before group GroupQuickSteps. Is the Outlook ribbon only limited to TabDefault?
I would like to design my ribbon to have one button on the compose ribbon and one button on the read (pop-out) button. Then I would have two buttons on the main ribbon (TabMail). All buttons would perform different functions. Can I define separate logic for each ribbon/window? The only example I see is that Contoso sample app. Kind of confused about the manifest and limitations. Looks like that example pops up on all windows.
Any help is appreciated.
Thanks,
Tom
Web add-ins don't support ribbon customizations you could do with a COM add-in. But web add-ins provide the ability to create ribbon commands. You can read more about them in the Add-in commands for Outlook article.
Add-in commands are supported for four scenarios:
Reading a message
When the user is reading a message in the reading pane or in the Message tab for a pop-out read form, add-in commands added to the default tab appear on the Home tab.
Composing a message
When the user is composing a message, add-in commands added to the default tab appear on the Message tab.
Creating or viewing an appointment or meeting as the organizer
When creating or viewing an appointment or meeting as the organizer, add-in commands added to the default tab appear on the Meeting, Meeting Occurrence, Meeting Series, or Appointment tabs on pop-out forms. However, if the user selects an item in the calendar but doesn't open the pop-out, the add-in's ribbon group won't be visible in the ribbon.
Viewing a meeting as an attendee
When viewing a meeting as an attendee, add-in commands added to the default tab appear on the Meeting, Meeting Occurrence, or Meeting Series tabs on pop-out forms. However, if a user selects an item in the calendar but doesn't open the pop-out, the add-in's ribbon group won't be visible in the ribbon
Using a module extension
When using a module extension, add-in commands appear on the extension's custom tab.

Outlook Add-ins closing when a new email is opened

Whenever I have an add-in open in outlook, it closes immediately when I open a different email. Is there a way to keep an add-in open while I browse through multiple emails? Or is outlook coded in such a way that forces the add-in to close every time you click on a different email?
Thanks.
As far as I understand your questions you are the user of the Outlook Add-on. If this is correct, you will not be able to change this behavior. Every time you switch the item you would need to click to invoke the add-on once again. You may also contact the developers of this add-on and request them to implement a pinnable taskpane with explanation of your business case.
Well, if I was wrong and you are the developer of this add-on, you should look at pinnable taskpane in Outlook. This would cover exactly the case you have described. What you would need to do is just support VersionOverrides v1.1 schema in your add-on manifest as well as register and implement the Office.EventType.ItemChanged event handler in your add-on JS implementation.

Resources