Skip to content

Conversation

@Mohammed-MSFT
Copy link
Contributor

@Mohammed-MSFT Mohammed-MSFT commented Jun 27, 2025

No description provided.

@Harikrishnan-MSFT Harikrishnan-MSFT requested a review from Copilot July 1, 2025 07:07

This comment was marked as outdated.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This pull request implements a Node.js conversion of the C# Adaptive Card User Specific Views bot sample, expanding the Teams sample collection to include cross-platform support. The conversion demonstrates user-specific views in Adaptive Cards within Microsoft Teams using Action.Execute and auto-refresh capabilities for dynamic, personalized content.

Key Changes:

  • Complete Node.js implementation of adaptive card user-specific views functionality
  • Microsoft 365 Agents Toolkit integration for streamlined development workflow
  • Comprehensive sample configuration and documentation for Teams development

Reviewed Changes

Copilot reviewed 72 out of 121 changed files in this pull request and generated 7 comments.

File Description
samples/tab-channel-group/nodejs/* Complete Node.js tab implementation with React components and routing
samples/bot-conversation-quickstart/csharp/* C# bot quickstart sample with M365 Agents Toolkit integration
samples/bot-adaptivecards-user-specific-views/nodejs/* Node.js adaptive cards bot with user-specific view capabilities
README.md Updated sample listing to include new Node.js adaptive cards implementation

Comment on lines 67 to 70
? "/images/IconGray.png"
: selectedColor === "red"
? "/Images/IconRed.png"
: "/Images/TeamsIcon.png"
Copy link

Copilot AI Jul 16, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The image paths have inconsistent casing. Line 67 uses "/images/IconGray.png" while TabConfig.js uses "/images/iconGray.png" (lowercase 'i'). This inconsistency could cause broken images on case-sensitive file systems.

Suggested change
? "/images/IconGray.png"
: selectedColor === "red"
? "/Images/IconRed.png"
: "/Images/TeamsIcon.png"
? "/images/icongray.png"
: selectedColor === "red"
? "/images/iconred.png"
: "/images/teamsicon.png"

Copilot uses AI. Check for mistakes.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Corrected and fixed

selectedColor === "gray"
? "/images/IconGray.png"
: selectedColor === "red"
? "/Images/IconRed.png"
Copy link

Copilot AI Jul 16, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The image path uses "/Images/IconRed.png" with capital 'I' in 'Images', which is inconsistent with other references that use lowercase 'images'. This could cause broken images on case-sensitive file systems.

Suggested change
? "/Images/IconRed.png"
? "/images/IconRed.png"

Copilot uses AI. Check for mistakes.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed

Comment on lines +69 to +70
? "/Images/IconRed.png"
: "/Images/TeamsIcon.png"
Copy link

Copilot AI Jul 16, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The image path uses "/Images/TeamsIcon.png" with capital 'I' in 'Images', which is inconsistent with other references that use lowercase 'images'. This could cause broken images on case-sensitive file systems.

Suggested change
? "/Images/IconRed.png"
: "/Images/TeamsIcon.png"
? "/images/IconRed.png"
: "/images/TeamsIcon.png"

Copilot uses AI. Check for mistakes.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed

return (
<div>
<h1>Success!</h1>
<img id="icon" src="/images/IconGray.png" alt="Red Image" style={{ width: "100px" }} />
Copy link

Copilot AI Jul 16, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The alt text says "Red Image" but this is displaying a gray icon. The alt text should accurately describe the image content for accessibility.

Suggested change
<img id="icon" src="/images/IconGray.png" alt="Red Image" style={{ width: "100px" }} />
<img id="icon" src="/images/IconGray.png" alt="Gray Icon" style={{ width: "100px" }} />

Copilot uses AI. Check for mistakes.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed

Comment on lines 7 to 8
const gray = "Tab.js says: 'You chose Gray!";
const red = "Tab.js says: 'You chose Red!";
Copy link

Copilot AI Jul 16, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The string has an unmatched single quote. It starts with a single quote but doesn't close it properly, which could lead to syntax issues.

Suggested change
const gray = "Tab.js says: 'You chose Gray!";
const red = "Tab.js says: 'You chose Red!";
const gray = "Tab.js says: 'You chose Gray!'";
const red = "Tab.js says: 'You chose Red!'";

Copilot uses AI. Check for mistakes.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed

Comment on lines 7 to 8
const gray = "Tab.js says: 'You chose Gray!";
const red = "Tab.js says: 'You chose Red!";
Copy link

Copilot AI Jul 16, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The string has an unmatched single quote. It starts with a single quote but doesn't close it properly, which could lead to syntax issues.

Suggested change
const gray = "Tab.js says: 'You chose Gray!";
const red = "Tab.js says: 'You chose Red!";
const gray = "Tab.js says: 'You chose Gray!'";
const red = "Tab.js says: 'You chose Red!'";

Copilot uses AI. Check for mistakes.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed

Comment on lines +4 to +10
import ReactDOM from 'react-dom';
import './index.css';
import App from './components/App';
ReactDOM.render(

<App />
, document.getElementById('root')
Copy link

Copilot AI Jul 16, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ReactDOM.render is deprecated in React 18. Consider using createRoot from 'react-dom/client' instead for better performance and future compatibility.

Suggested change
import ReactDOM from 'react-dom';
import './index.css';
import App from './components/App';
ReactDOM.render(
<App />
, document.getElementById('root')
import { createRoot } from 'react-dom/client';
import './index.css';
import App from './components/App';
const root = createRoot(document.getElementById('root'));
root.render(
<App />

Copilot uses AI. Check for mistakes.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed

Copy link
Collaborator

@Pawank-MSFT Pawank-MSFT left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please correct the PR feedbacks

@Harikrishnan-MSFT Harikrishnan-MSFT changed the title Harsh - C# to Nodejs Conversion Bot Adaptive Card User Specific Views Create new samples for bot-adaptivecards-user-specific-views (Node.js) and bot-conversation-quickstart (C#) and tab-channel-group (nodejs) Aug 20, 2025
@Harikrishnan-MSFT Harikrishnan-MSFT changed the title Create new samples for bot-adaptivecards-user-specific-views (Node.js) and bot-conversation-quickstart (C#) and tab-channel-group (nodejs) Create new samples for tab-channel-group (nodejs) Dec 30, 2025
Copy link
Collaborator

@Pawank-MSFT Pawank-MSFT left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just fix image issue, Rest is ok! Approving please fix before merge.


![GreyTab](Images/GreyTab.png)

![Redconfigure](Images/Redconfigure.png)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Redconfigure.png not available

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All images are available; it will display after merge I guess !
image

@Harikrishnan-MSFT
Copy link
Contributor

@Harikrishnan-MSFT Harikrishnan-MSFT merged commit 9e3011e into main Jan 7, 2026
295 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants