Skip to content

Commit 68cb0cf

Browse files
Update Sample App Documentation page source and package links
Source code button navigates to component folder on GitHub (main branch) Most likely namespace is shown (hard-coded logic for now) - unoplatform/uno#8750 Shows and links to Uwp/WinUI packages on NuGet
1 parent ce58fc8 commit 68cb0cf

File tree

4 files changed

+28
-4
lines changed

4 files changed

+28
-4
lines changed

CommunityToolkit.App.Shared/Renderers/ToolkitDocumentationRenderer.xaml

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,7 @@
230230
</StackPanel>
231231
<interactivity:Interaction.Behaviors>
232232
<interactions:EventTriggerBehavior EventName="Click">
233-
<behaviors:NavigateToUriAction NavigateUri="{x:Bind renderer:ToolkitDocumentationRenderer.ToGitHubUri('issues', Metadata.IssueId), Mode=OneWay}" />
233+
<behaviors:NavigateToUriAction NavigateUri="{x:Bind renderer:ToolkitDocumentationRenderer.ToComponentUri(Metadata.ComponentName), Mode=OneWay}" />
234234
</interactions:EventTriggerBehavior>
235235
</interactivity:Interaction.Behaviors>
236236
</Button>
@@ -251,21 +251,23 @@
251251
Text="Namespace" />
252252
<TextBlock FontFamily="Consolas"
253253
IsTextSelectionEnabled="True"
254-
Text="CommunityToolkit.WinUI.Behaviors" />
254+
Text="{x:Bind renderer:ToolkitDocumentationRenderer.ToPackageNamespace(Metadata.CsProjName), Mode=OneWay}" />
255255
<TextBlock Margin="0,24,0,0"
256256
Foreground="{StaticResource TextFillColorSecondaryBrush}"
257257
Style="{StaticResource CaptionTextBlockStyle}"
258258
Text="NuGet package" />
259259
<TextBlock IsTextSelectionEnabled="True">
260260
<Hyperlink FontFamily="Consolas"
261+
NavigateUri="{x:Bind renderer:ToolkitDocumentationRenderer.ToPackageUri('Uwp', Metadata.CsProjName), Mode=OneWay}"
261262
TextDecorations="None">
262-
CommunityToolkit.Uwp.Behaviors
263+
<Run Text="{x:Bind renderer:ToolkitDocumentationRenderer.ToPackageName('Uwp', Metadata.CsProjName), Mode=OneWay}" />
263264
</Hyperlink>
264265
</TextBlock>
265266
<TextBlock IsTextSelectionEnabled="True">
266267
<Hyperlink FontFamily="Consolas"
268+
NavigateUri="{x:Bind renderer:ToolkitDocumentationRenderer.ToPackageUri('WinUI', Metadata.CsProjName), Mode=OneWay}"
267269
TextDecorations="None">
268-
CommunityToolkit.WinUI.Behaviors
270+
<Run Text="{x:Bind renderer:ToolkitDocumentationRenderer.ToPackageName('WinUI', Metadata.CsProjName), Mode=OneWay}" />
269271
</Hyperlink>
270272
</TextBlock>
271273
</StackPanel>

CommunityToolkit.App.Shared/Renderers/ToolkitDocumentationRenderer.xaml.cs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
using CommunityToolkit.Tooling.SampleGen.Metadata;
77
using Windows.Storage;
88
using Windows.System;
9+
using static System.Net.WebRequestMethods;
910

1011
#if !HAS_UNO
1112
#if !WINAPPSDK
@@ -215,6 +216,24 @@ private async void MarkdownTextBlock_LinkClicked(object sender, LinkClickedEvent
215216

216217
public static Uri? ToGitHubUri(string path, int id) => IsProjectPathValid() ? new Uri($"{ProjectUrl}/{path}/{id}") : null;
217218

219+
public static Uri? ToComponentUri(string name) => IsProjectPathValid() ? new Uri($"{ProjectUrl}/tree/main/components/{name}") : null;
220+
221+
public static Uri? ToPackageUri(string platform, string projectFileName) => new Uri($"https://www.nuget.org/packages/{RemoveFileExtension(projectFileName).Replace("WinUI", platform)}");
222+
223+
public static string ToPackageName(string platform, string projectFileName) => RemoveFileExtension(projectFileName).Replace("WinUI", platform);
224+
225+
// TODO: Think this is most of the special cases with Controls and the Extensions/Triggers using the base namespace
226+
// See: https://github.com/CommunityToolkit/Tooling-Windows-Submodule/issues/105#issuecomment-1698306420
227+
// And: https://github.com/unoplatform/uno/issues/8750 - otherwise we could use csproj data and inject with SG.
228+
public static string ToPackageNamespace(string projectFileName) => RemoveFileExtension(projectFileName) switch
229+
{
230+
string c when c.Contains("Controls") => "CommunityToolkit.WinUI.Controls",
231+
string e when e.Contains("Extensions") || e.Contains("Triggers") => "CommunityToolkit.WinUI",
232+
_ => RemoveFileExtension(projectFileName)
233+
};
234+
235+
private static string RemoveFileExtension(string filename) => filename.Replace(".csproj", "");
236+
218237
public static Visibility IsIdValid(int id) => id switch
219238
{
220239
<= 0 => Visibility.Collapsed,

ProjectHeads/App.Head.props

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@
9494

9595
<!-- Include markdown files from all samples so the head can access them in the source generator -->
9696
<AdditionalFiles Include="$(RepositoryDirectory)components\**\samples\**\*.md" Exclude="$(RepositoryDirectory)**\**\samples\**\obj\**\*.md;$(RepositoryDirectory)**\**\samples\**\bin\**\*.md"/>
97+
<AdditionalFiles Include="$(RepositoryDirectory)components\**\src\**\*.csproj" />
9798
</ItemGroup>
9899

99100
<!-- See https://github.com/CommunityToolkit/Labs-Windows/issues/142 -->
@@ -109,6 +110,7 @@
109110

110111
<!-- Include markdown files from all samples so the head can access them in the source generator -->
111112
<AdditionalFiles Include="$(MSBuildProjectDirectory)\..\..\samples\*.md" Exclude="$(MSBuildProjectDirectory)\..\..\**\obj\**\*.md;$(MSBuildProjectDirectory)\..\..\**\bin\**\*.md"/>
113+
<AdditionalFiles Include="$(MSBuildProjectDirectory)\..\..\src\**\*.csproj" />
112114
</ItemGroup>
113115

114116
<PropertyGroup>

ToolkitComponent.SampleProject.props

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,5 +38,6 @@
3838

3939
<!-- Enable reading Markdown files from source generator -->
4040
<AdditionalFiles Include="**\*.md" Exclude="bin\**\*.md;obj\**\*.md" />
41+
<AdditionalFiles Include="$(MSBuildProjectDirectory)\..\src\*.csproj" />
4142
</ItemGroup>
4243
</Project>

0 commit comments

Comments
 (0)