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
Copilot

This comment was marked as outdated.

Copy link
Contributor

@Copilot 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
Preview

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
Preview

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
Preview

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
Preview

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
Preview

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
Preview

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
Preview

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

README.md Outdated
Copy link
Collaborator

Choose a reason for hiding this comment

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

Need to add Bot-conversation-Quickstart C# and Tab-channel-group/nodejs also

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

@@ -0,0 +1,114 @@
{
"id": "08500d07-8c32-41d1-bcd9-ec5b48245744",
"appId": "aee7ddf0-6b6e-4f99-9514-0ebf3fecae7a",
Copy link
Collaborator

Choose a reason for hiding this comment

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

Need to remove this. check all Ids. Remove build folder

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

@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
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.

2 participants