Skip to content

Commit 97ca0df

Browse files
Chore (release): 6.2.0 (#1960)
* Chore: reduce PR body content (#1937) * Fix: Center method names on sample queries (#1940) * Feature: Add PHP Snippets tab. (#1923) * Fix: Return focus to feedback button (#1941) * Task: July dependabot upgrades (#1920) * Task: Add missing header telemetry (#1944) * Fix: Remove pivot tooltips (#1952) * Fix: Remove toggleCollapse string (#1951) * Fix: Toolkit component scrolling (#1946) * Chore(deps): Bump terser from 5.13.1 to 5.14.2 (#1953) * Fix: Use resources as a source of truth (#1956) * Task: Add PHP docs link telemetry (#1961) * Revert "Feature: Add PHP Snippets tab. (#1923)" (#1985) * Fix: Disable sanitization of query url when sharing query (#1993) * Bump version to 6.2.0
1 parent e4a3615 commit 97ca0df

File tree

17 files changed

+1009
-763
lines changed

17 files changed

+1009
-763
lines changed

.github/workflows/cut-release.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,8 @@ jobs:
6161
git fetch origin master --depth 100
6262
git fetch origin dev --depth 100
6363
64-
masterPrBody=$(git rev-list --oneline $branchName ^origin/master)
65-
devPrBody=$(git rev-list --oneline $branchName ^origin/dev)
64+
masterPrBody=$(git rev-list v$currentVersion.. --oneline $branchName ^origin/master)
65+
devPrBody=$(git rev-list v$currentVersion.. --oneline $branchName ^origin/dev)
6666
6767
echo 'masterPrBody<<END_OF_OUTPUT' >> $GITHUB_ENV
6868
echo "$masterPrBody" >> $GITHUB_ENV

package-lock.json

Lines changed: 906 additions & 674 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
{
22
"name": "graph-explorer-v2",
3-
"version": "6.1.0",
3+
"version": "6.2.0",
44
"private": true,
55
"dependencies": {
66
"@augloop/types-core": "file:packages/types-core-2.16.189.tgz",
7-
"@axe-core/webdriverjs": "4.4.2",
8-
"@azure/msal-browser": "2.23.0",
9-
"@babel/core": "7.17.9",
10-
"@babel/runtime": "7.18.3",
7+
"@axe-core/webdriverjs": "4.4.3",
8+
"@azure/msal-browser": "2.27.0",
9+
"@babel/core": "7.18.6",
10+
"@babel/runtime": "7.18.6",
1111
"@fluentui/react": "8.72.1",
1212
"@fluentui/react-icons-mdl2": "1.3.8",
1313
"@microsoft/applicationinsights-react-js": "3.3.4",
14-
"@microsoft/applicationinsights-web": "2.7.6",
14+
"@microsoft/applicationinsights-web": "2.8.4",
1515
"@microsoft/microsoft-graph-client": "3.0.2",
1616
"@monaco-editor/react": "4.4.5",
1717
"@ms-ofb/officebrowserfeedbacknpm": "file:packages/officebrowserfeedbacknpm-1.6.6.tgz",
@@ -30,18 +30,18 @@
3030
"eslint-webpack-plugin": "3.1.1",
3131
"express": "4.18.1",
3232
"file-loader": "6.2.0",
33-
"fork-ts-checker-webpack-plugin": "7.2.3",
33+
"fork-ts-checker-webpack-plugin": "7.2.11",
3434
"fs-extra": "10.1.0",
3535
"guid-typescript": "1.0.9",
3636
"isomorphic-fetch": "3.0.0",
3737
"localforage": "1.10.0",
38-
"mini-css-extract-plugin": "2.6.0",
38+
"mini-css-extract-plugin": "2.6.1",
3939
"monaco-editor": "0.33.0",
4040
"monaco-editor-webpack-plugin": "7.0.1",
41-
"office-ui-fabric-core": "11.0.0",
41+
"office-ui-fabric-core": "11.0.1",
4242
"postcss-flexbugs-fixes": "5.0.2",
4343
"postcss-loader": "7.0.0",
44-
"postcss-preset-env": "7.7.0",
44+
"postcss-preset-env": "7.7.2",
4545
"re-resizable": "6.9.9",
4646
"react": "16.14.0",
4747
"react-app-polyfill": "3.0.0",
@@ -54,10 +54,10 @@
5454
"sass": "1.50.0",
5555
"sass-loader": "12.6.0",
5656
"style-loader": "3.3.1",
57-
"typescript": "4.7.2",
57+
"typescript": "4.7.4",
5858
"url": "0.11.0",
5959
"url-loader": "4.1.1",
60-
"webpack": "5.72.1",
60+
"webpack": "5.73.0",
6161
"webpack-dev-server": "4.9.1",
6262
"webpack-manifest-plugin": "5.0.0",
6363
"workbox-webpack-plugin": "6.5.3"
@@ -86,7 +86,7 @@
8686
],
8787
"devDependencies": {
8888
"@testing-library/react": "12.1.5",
89-
"@testing-library/user-event": "14.1.1",
89+
"@testing-library/user-event": "14.2.1",
9090
"@types/chromedriver": "81.0.1",
9191
"@types/enzyme": "3.10.11",
9292
"@types/enzyme-adapter-react-16": "1.0.6",
@@ -101,26 +101,26 @@
101101
"@types/redux-mock-store": "1.0.3",
102102
"@types/selenium-webdriver": "4.1.1",
103103
"@typescript-eslint/eslint-plugin": "5.22.0",
104-
"@typescript-eslint/parser": "5.27.0",
104+
"@typescript-eslint/parser": "5.30.5",
105105
"acorn": "8.7.1",
106-
"babel-jest": "28.1.0",
106+
"babel-jest": "28.1.2",
107107
"chromedriver": "101.0.0",
108108
"enzyme": "3.11.0",
109109
"enzyme-adapter-react-16": "1.15.6",
110110
"eslint": "8.12.0",
111111
"html-webpack-plugin": "5.5.0",
112112
"jest": "28.1.0",
113-
"jest-environment-jsdom": "28.1.0",
113+
"jest-environment-jsdom": "28.1.2",
114114
"jest-fetch-mock": "3.0.3",
115115
"jest-sonar-reporter": "2.0.0",
116-
"jest-watch-typeahead": "1.0.0",
116+
"jest-watch-typeahead": "1.1.0",
117117
"node-notifier": "10.0.1",
118118
"react-dev-utils": "12.0.1",
119119
"redux-logger": "3.0.6",
120120
"redux-mock-store": "1.5.4",
121-
"selenium-webdriver": "4.2.0",
121+
"selenium-webdriver": "4.3.0",
122122
"start-server-and-test": "1.14.0",
123-
"ts-jest": "28.0.1"
123+
"ts-jest": "28.0.5"
124124
},
125125
"jestSonar": {
126126
"reportPath": "reports",

src/app/utils/generate-groups.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ export function generateGroupsFromList(list: any[], property: string) : IGroup[]
77
let isCollapsed = false;
88
let previousCount = 0;
99
let count = 0;
10-
const toggleCollapse: string = isCollapsed ? 'collapsed ': 'expanded '
1110

1211
if (!list || list.length === 0 || list.some(e => !e[property])) {
1312
return groups;
@@ -17,7 +16,7 @@ export function generateGroupsFromList(list: any[], property: string) : IGroup[]
1716
if (!map.has(listItem[property])) {
1817
map.set(listItem[property], true);
1918
count = list.filter(item => item[property] === listItem[property]).length;
20-
const ariaLabel: string = listItem[property] + ' has ' + count + ' results ' + toggleCollapse;
19+
const ariaLabel: string = listItem[property] + ' has ' + count + ' results ';
2120
if (groups.length > 0) {
2221
isCollapsed = true;
2322
}

src/app/views/authentication/Authentication.tsx

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import React, { useState } from 'react';
44
import { injectIntl } from 'react-intl';
55
import { useDispatch, useSelector } from 'react-redux';
66
import { authenticationWrapper } from '../../../modules/authentication';
7-
import { componentNames, errorTypes, telemetry } from '../../../telemetry';
7+
import { componentNames, errorTypes, eventTypes, telemetry } from '../../../telemetry';
88
import { IRootState } from '../../../types/root';
99
import { getAuthTokenSuccess, getConsentedScopesSuccess } from '../../services/actions/auth-action-creators';
1010
import { setQueryResponseStatus } from '../../services/actions/query-status-action-creator';
@@ -29,6 +29,9 @@ const Authentication = (props: any) => {
2929
}: any = props;
3030
const signIn = async (): Promise<void> => {
3131
setLoginInProgress(true);
32+
telemetry.trackEvent(eventTypes.BUTTON_CLICK_EVENT, {
33+
ComponentName: componentNames.SIGN_IN_BUTTON
34+
});
3235

3336
try {
3437
const authResponse = await authenticationWrapper.logIn();
@@ -65,6 +68,9 @@ const Authentication = (props: any) => {
6568

6669
const signInWithOther = async (): Promise<void> => {
6770
setLoginInProgress(true);
71+
telemetry.trackEvent(eventTypes.BUTTON_CLICK_EVENT, {
72+
ComponentName: componentNames.SIGN_IN_WITH_OTHER_ACCOUNT_BUTTON
73+
});
6874
try{
6975
const authResponse = await authenticationWrapper.logInWithOther();
7076
if (authResponse) {

src/app/views/common/monaco/Monaco.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ export function Monaco(props: IMonaco) {
4747
foldingStrategy: 'indentation',
4848
showFoldingControls: 'always',
4949
renderLineHighlight: 'none',
50-
scrollBeyondLastLine: false,
50+
scrollBeyondLastLine: true,
5151
overviewRulerBorder: false
5252
}}
5353
onChange={onChange}

src/app/views/main-header/FeedbackButton.tsx

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import { getTheme, IconButton, IIconProps, TooltipHost } from '@fluentui/react';
2-
import React, { useState } from 'react';
1+
import { getTheme, IButton, IconButton, IIconProps, TooltipHost } from '@fluentui/react';
2+
import React, { useState, useEffect } from 'react';
33
import { translateMessage } from '../../utils/translate-messages';
44
import { useSelector } from 'react-redux';
55
import FeedbackForm from '../query-runner/request/feedback/FeedbackForm';
@@ -17,6 +17,18 @@ export const FeedbackButton = () => {
1717
const feedbackTitle = translateMessage('Feedback');
1818
const content = <div style={{padding:'3px'}}>{translateMessage('Feedback')}</div>
1919

20+
const feedbackButtonRef = React.useRef<IButton>(null)
21+
const isFirstRender = React.useRef(true);
22+
useEffect( () => {
23+
if (isFirstRender.current) {
24+
isFirstRender.current = false;
25+
return;
26+
}
27+
if(!enableSurvey){
28+
feedbackButtonRef.current?.focus();
29+
}
30+
},[enableSurvey])
31+
2032
const feedbackIconStyles = {
2133
root:{
2234
height: '50px',
@@ -66,6 +78,7 @@ export const FeedbackButton = () => {
6678
styles={feedbackIconStyles}
6779
role={'button'}
6880
disabled={enableSurvey}
81+
componentRef={feedbackButtonRef}
6982
/>
7083
</TooltipHost>
7184

src/app/views/main-header/Help.tsx

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ export const Help = () => {
3939
iconProps: {
4040
iconName: 'ReportWarning'
4141
},
42-
onClick: () => trackLinkClickEvents(componentNames.REPORT_AN_ISSUE_LINK)
42+
onClick: (e: any) => telemetry.trackLinkClickEvent(e.currentTarget.href, componentNames.REPORT_AN_ISSUE_LINK)
4343
},
4444
{ key: 'divider_1', itemType: ContextualMenuItemType.Divider },
4545
{
@@ -50,7 +50,7 @@ export const Help = () => {
5050
iconProps: {
5151
iconName: 'TextDocument'
5252
},
53-
onClick: () => trackLinkClickEvents(componentNames.GE_DOCUMENTATION_LINK)
53+
onClick: (e: any) => telemetry.trackLinkClickEvent(e.currentTarget.href, componentNames.GE_DOCUMENTATION_LINK)
5454
},
5555
{
5656
key: 'graph-documentation',
@@ -60,7 +60,9 @@ export const Help = () => {
6060
iconProps: {
6161
iconName: 'Documentation'
6262
},
63-
onClick: () => trackLinkClickEvents(componentNames.GRAPH_DOCUMENTATION_LINK)
63+
onClick: (e: any) => telemetry.trackLinkClickEvent(
64+
e.currentTarget.href,
65+
componentNames.GRAPH_DOCUMENTATION_LINK)
6466
},
6567
{
6668
key: 'github',
@@ -76,17 +78,17 @@ export const Help = () => {
7678
}
7779
}
7880
},
79-
onClick: () => trackLinkClickEvents(componentNames.GITHUB_LINK)
81+
onClick: (e: any) => telemetry.trackLinkClickEvent(e.currentTarget.href, componentNames.GITHUB_LINK)
8082
}
8183
];
8284
setItems(menuItems);
8385
}, [authenticated]);
8486

85-
const trackLinkClickEvents = (componentName: string) => {
86-
telemetry.trackEvent(eventTypes.LINK_CLICK_EVENT, {
87-
ComponentName: componentName
87+
const trackHelpButtonClickEvent = () => {
88+
telemetry.trackEvent(eventTypes.BUTTON_CLICK_EVENT, {
89+
ComponentName: componentNames.HELP_BUTTON
8890
});
89-
};
91+
}
9092

9193
const calloutStyles: React.CSSProperties = {
9294
overflowY: 'hidden'
@@ -121,6 +123,7 @@ export const Help = () => {
121123
styles={helpButtonStyles}
122124
menuIconProps={{ iconName: 'Help' }}
123125
menuProps={menuProperties}
126+
onMenuClick={trackHelpButtonClickEvent}
124127
/>
125128
</TooltipHost>
126129
</div>

src/app/views/main-header/settings/Settings.tsx

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,12 @@ export const Settings: React.FunctionComponent<ISettingsProps> = () => {
8282
});
8383
};
8484

85+
const trackSettingsButtonClickEvent = () => {
86+
telemetry.trackEvent(eventTypes.BUTTON_CLICK_EVENT, {
87+
ComponentName: componentNames.SETTINGS_BUTTON
88+
});
89+
}
90+
8591
const calloutStyles: React.CSSProperties = {
8692
overflowY: 'hidden'
8793
}
@@ -119,6 +125,7 @@ export const Settings: React.FunctionComponent<ISettingsProps> = () => {
119125
styles={settingsButtonStyles}
120126
menuIconProps={{ iconName: 'Settings' }}
121127
menuProps={menuProperties}
128+
onMenuClick={trackSettingsButtonClickEvent}
122129
/>
123130
</TooltipHost>
124131
<div>

src/app/views/query-response/QueryResponse.tsx

Lines changed: 11 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import {
22
Announced, Dialog, DialogFooter, DialogType,
3-
DefaultButton, FontSizes, getId, Icon, IconButton,
4-
Modal, Pivot, PivotItem, TooltipHost
3+
DefaultButton, FontSizes, IconButton,
4+
Modal, Pivot, PivotItem
55
} from '@fluentui/react';
66
import { Resizable } from 're-resizable';
77
import React, { useState, useEffect } from 'react';
@@ -85,21 +85,15 @@ const QueryResponse = (props: IQueryResponseProps) => {
8585
if(!pivotItem){ return ;}
8686
setCurrentTab(pivotItem.props.itemKey!);
8787
onPivotItemClick(sampleQuery, pivotItem);
88-
}
89-
90-
const renderItemLink = (link: any) => {
91-
return (
92-
<TooltipHost
93-
content={link.title}
94-
id={getId()}
95-
calloutProps={{ gapSpace: 0 }}
96-
>
97-
<Icon iconName={link.itemIcon} style={{ paddingRight: 5 }} />
98-
{link.headerText}
99-
</TooltipHost>
100-
);
10188
};
10289

90+
const onScroll = () => {
91+
const queryResponseElements = document.getElementsByClassName('query-response');
92+
if(queryResponseElements && queryResponseElements.length > 0){
93+
queryResponseElements[0].scrollTop = 0;
94+
}
95+
}
96+
10397
return (
10498
<>
10599
<Resizable
@@ -121,7 +115,8 @@ const QueryResponse = (props: IQueryResponseProps) => {
121115
<div className='query-response' style={{
122116
minHeight: 350,
123117
height: '100%'
124-
}}>
118+
}}
119+
onScroll={onScroll}>
125120

126121
<Pivot overflowBehavior='menu'
127122
overflowAriaLabel={translateMessage('More items')}
@@ -137,7 +132,6 @@ const QueryResponse = (props: IQueryResponseProps) => {
137132
itemKey='expand-response'
138133
ariaLabel={translateMessage('Expand response')}
139134
title={translateMessage('Expand response')}
140-
onRenderItemLink={renderItemLink}
141135
/>
142136
</Pivot>
143137
</div>

0 commit comments

Comments
 (0)