Skip to content

Commit ca4ec3a

Browse files
committed
4.0.1 release
1 parent 543be97 commit ca4ec3a

29 files changed

Lines changed: 1162 additions & 978 deletions

source/client/package-lock.json

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

source/client/package.json

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -16,47 +16,47 @@
1616
"dependencies": {
1717
"@automapper/pojos": "^8.8.1",
1818
"@emotion/react": "^11.14.0",
19-
"@fluentui/react-components": "^9.61.2",
20-
"@microsoft/applicationinsights-react-js": "^17.3.6",
19+
"@fluentui/react-components": "^9.61.6",
20+
"@microsoft/applicationinsights-react-js": "^18.3.6",
2121
"@microsoft/applicationinsights-web": "^3.3.6",
22-
"@microsoft/teams-js": "2.35.0",
22+
"@microsoft/teams-js": "2.36.0",
2323
"axios": "^1.8.4",
2424
"react": "^18.3.1",
2525
"react-dom": "^18.3.1",
2626
"react-error-boundary": "^5.0.0",
27-
"react-hook-form": "^7.54.2",
27+
"react-hook-form": "^7.55.0",
2828
"react-icons": "^5.5.0",
2929
"react-intl": "^7.1.10",
30-
"react-router-dom": "^7.4.0",
30+
"react-router-dom": "^7.5.0",
3131
"react-use": "^17.6.0",
3232
"ress": "^5.0.2"
3333
},
3434
"devDependencies": {
3535
"@emotion/babel-plugin": "^11.13.5",
3636
"@eslint/eslintrc": "^3.3.1",
37-
"@eslint/js": "^9.23.0",
37+
"@eslint/js": "^9.24.0",
3838
"@formatjs/cli": "^6.6.3",
3939
"@stylistic/eslint-plugin": "^4.2.0",
4040
"@types/react": "^18.3.20",
41-
"@types/react-dom": "^18.3.5",
41+
"@types/react-dom": "^18.3.6",
4242
"@types/react-router-dom": "^5.3.3",
4343
"@vitejs/plugin-react": "^4.3.4",
4444
"babel-plugin-formatjs": "^10.5.37",
45-
"eslint": "^9.23.0",
45+
"eslint": "^9.24.0",
4646
"eslint-plugin-hooks": "^0.4.3",
4747
"eslint-plugin-jsx-a11y": "^6.10.2",
48-
"eslint-plugin-react": "^7.37.4",
48+
"eslint-plugin-react": "^7.37.5",
4949
"eslint-plugin-react-hooks": "^5.2.0",
5050
"eslint-plugin-sonarjs": "^3.0.2",
5151
"globals": "^16.0.0",
5252
"postcss": "^8.5.3",
5353
"postcss-styled-syntax": "^0.7.1",
54-
"stylelint": "^16.16.0",
54+
"stylelint": "^16.18.0",
5555
"stylelint-config-recess-order": "^6.0.0",
5656
"stylelint-config-standard-scss": "^14.0.0",
57-
"typescript": "^5.8.2",
58-
"typescript-eslint": "^8.28.0",
59-
"vite": "^6.2.3"
57+
"typescript": "^5.8.3",
58+
"typescript-eslint": "^8.29.1",
59+
"vite": "^6.2.6"
6060
},
6161
"volta": {
6262
"node": "20.18.0"

source/client/src/features/tab/pages/ContentPage.presenter.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import { useTheme } from '../../../providers/ThemeProvider';
2626

2727
interface ContentPageProps {
2828
disabled?: boolean,
29+
loading?: boolean,
2930
value?: CommandSettingsFormState,
3031
onSubmit?: EventHandler<CommandSettingsFormState>
3132
}
@@ -34,6 +35,7 @@ function ContentPage(props: Readonly<ContentPageProps>) {
3435

3536
const {
3637
disabled,
38+
loading,
3739
value,
3840
onSubmit
3941
} = props;
@@ -236,7 +238,7 @@ function ContentPage(props: Readonly<ContentPageProps>) {
236238
<Button
237239
appearance="primary"
238240
aria-label={intl.formatMessage(messages.Save)}
239-
disabled={disabled || !form.formState.isDirty}
241+
disabled={disabled || loading || !form.formState.isDirty}
240242
title={intl.formatMessage(messages.Save)}
241243
type="submit">
242244
<FormattedMessage {...messages.Save} />

source/client/src/features/tab/pages/ContentPage.tsx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ function ContentPage() {
2727
const getValue = useGetValue();
2828
const setValue = useSetValue();
2929

30+
const [ loading, setLoading ] = React.useState<boolean>(false);
3031
const [ disabled, setDisabled ] = React.useState<boolean>(true);
3132
const [ state, setState ] = React.useState<CommandSettingsFormState>();
3233

@@ -36,6 +37,7 @@ function ContentPage() {
3637
throw new Error();
3738
}
3839
try {
40+
setLoading(true);
3941
const conversationId = context?.chat?.id;
4042
if (!conversationId) {
4143
throw new Error();
@@ -61,6 +63,8 @@ function ContentPage() {
6163
intent: 'error',
6264
text: intl.formatMessage(messages.SaveFailed)
6365
});
66+
} finally {
67+
setLoading(false);
6468
}
6569
})();
6670
}, [
@@ -92,6 +96,7 @@ function ContentPage() {
9296
return (
9397
<Presenter
9498
disabled={disabled}
99+
loading={loading}
95100
value={state}
96101
onSubmit={handleSubmit} />
97102
);

source/server/Karamem0.Commistant.Common/ConfigureServices.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public static class ConfigureServices
2929

3030
public static IServiceCollection ConfigureOptions(this IServiceCollection services, IConfiguration configuration)
3131
{
32-
_ = services.Configure<AzureBlobsStorageOptions>(configuration.GetSection("AzureBlobsStorage"));
32+
_ = services.Configure<AzureStorageBlobsOptions>(configuration.GetSection("AzureStorageBlobs"));
3333
_ = services.Configure<AzureOpenAIOptions>(configuration.GetSection("AzureOpenAI"));
3434
_ = services.Configure<BotFrameworkOptions>(configuration.GetSection("BotFramework"));
3535
return services;
@@ -41,8 +41,8 @@ public static IServiceCollection AddServices(this IServiceCollection services, I
4141
provider =>
4242
{
4343
var options = configuration
44-
.GetSection("AzureBlobsStorage")
45-
.Get<AzureBlobsStorageOptions>() ??
44+
.GetSection("AzureStorageBlobs")
45+
.Get<AzureStorageBlobsOptions>() ??
4646
throw new InvalidOperationException();
4747
return new BlobContainerClient(new Uri(options.Endpoint ?? throw new InvalidOperationException(), options.ContainerName), new DefaultAzureCredential());
4848
}

source/server/Karamem0.Commistant.Common/Karamem0.Commistant.Common.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,10 @@
2222
<PackageReference Include="AutoMapper" Version="14.0.0" />
2323
<PackageReference Include="Azure.AI.OpenAI" Version="2.1.0" />
2424
<PackageReference Include="Azure.Identity" Version="1.13.2" />
25-
<PackageReference Include="Azure.Storage.Blobs" Version="12.23.0" />
25+
<PackageReference Include="Azure.Storage.Blobs" Version="12.24.0" />
2626
<PackageReference Include="Microsoft.Bot.Builder.Dialogs" Version="4.23.0" />
2727
<PackageReference Include="Microsoft.Bot.Builder.Integration.AspNet.Core" Version="4.23.0" />
28-
<PackageReference Include="Microsoft.Extensions.Logging.AzureAppServices" Version="9.0.2" />
28+
<PackageReference Include="Microsoft.Extensions.Logging.AzureAppServices" Version="9.0.4" />
2929
<PackageReference Include="QRCoder" Version="1.6.0" />
3030
</ItemGroup>
3131

source/server/Karamem0.Commistant.Common/Options/AzureBlobsStorageOptions.cs renamed to source/server/Karamem0.Commistant.Common/Options/AzureStorageBlobsOptions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
namespace Karamem0.Commistant.Options;
1616

17-
public record AzureBlobsStorageOptions
17+
public record AzureStorageBlobsOptions
1818
{
1919

2020
public Uri? Endpoint { get; set; }

source/server/Karamem0.Commistant.Function/Extensions/HttpRequestDataExtensions.cs

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -18,23 +18,13 @@ namespace Karamem0.Commistant.Extensions;
1818
public static partial class HttpRequestDataExtensions
1919
{
2020

21-
public static string? GetBearerToken(this HttpRequestData target)
21+
public static string? GetUserId(this HttpRequestData target)
2222
{
23-
if (target.Headers.TryGetValues("Authorization", out var headerValues) is false)
23+
if (target.Headers.TryGetValues("X-MS-CLIENT-PRINCIPAL-ID", out var headerValues) is false)
2424
{
2525
return null;
2626
}
27-
var headerValue = headerValues.SingleOrDefault();
28-
if (headerValue is null)
29-
{
30-
return null;
31-
}
32-
var headerPairs = headerValue.Split(' ');
33-
if (headerPairs.Length != 2 || headerPairs[0] != "Bearer")
34-
{
35-
return null;
36-
}
37-
return headerPairs[1];
27+
return headerValues.Single();
3828
}
3929

4030
}

source/server/Karamem0.Commistant.Function/Functions/GetSettingsFunction.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -65,9 +65,7 @@ public async Task<HttpResponseData> RunAsync(
6565
requestBody.MeetingId,
6666
cancellationToken
6767
);
68-
var userId = requestData
69-
.Headers.GetValues("X-MS-CLIENT-PRINCIPAL-ID")
70-
.SingleOrDefault();
68+
var userId = requestData.GetUserId();
7169
if (meetingInfo.Organizer?.AadObjectId == userId)
7270
{
7371
responseBody.IsOrganizer = true;

source/server/Karamem0.Commistant.Function/Karamem0.Commistant.Function.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,9 @@
2828
<PackageReference Include="Microsoft.Azure.Functions.Worker.ApplicationInsights" Version="2.0.0" />
2929
<PackageReference Include="Microsoft.Azure.Functions.Worker.Extensions.Http" Version="3.3.0" />
3030
<PackageReference Include="Microsoft.Azure.Functions.Worker.Extensions.Timer" Version="4.3.1" />
31-
<PackageReference Include="Microsoft.Azure.Functions.Worker.Sdk" Version="2.0.1" />
31+
<PackageReference Include="Microsoft.Azure.Functions.Worker.Sdk" Version="2.0.2" />
3232
<PackageReference Include="Microsoft.Bot.Connector" Version="4.23.0" />
33-
<PackageReference Include="Microsoft.IdentityModel.JsonWebTokens" Version="8.7.0" />
33+
<PackageReference Include="Microsoft.IdentityModel.JsonWebTokens" Version="8.8.0" />
3434
</ItemGroup>
3535

3636
<ItemGroup>

0 commit comments

Comments
 (0)