Browse Source

Enable nullable annotations for Volo.Abp.AspNetCore.Components.Web.Theming

pull/17062/head
liangshiwei 3 years ago
parent
commit
ab0451ef99
  1. 2
      framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Components/DynamicLayoutComponent.razor.cs
  2. 8
      framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Components/LayoutHooks/LayoutHook.razor.cs
  3. 10
      framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Layout/PageHeader.razor.cs
  4. 12
      framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Layout/PageLayout.cs
  5. 16
      framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/PageToolbars/PageToolbarExtensions.cs
  6. 5
      framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/PageToolbars/PageToolbarItem.cs
  7. 8
      framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/PageToolbars/SimplePageToolbarContributor.cs
  8. 2
      framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Routing/AbpRouterOptions.cs
  9. 2
      framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Theming/AbpThemingOptions.cs
  10. 2
      framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Theming/DefaultThemeManager.cs
  11. 3
      framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Toolbars/IToolbarConfigurationContext.cs
  12. 3
      framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Toolbars/ToolbarConfigurationContext.cs
  13. 2
      framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Toolbars/ToolbarItem.cs
  14. 2
      framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Volo.Abp.AspNetCore.Components.Web.Theming.csproj
  15. 4
      framework/src/Volo.Abp.UI/Volo/Abp/Ui/LayoutHooks/LayoutHookViewModel.cs

2
framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Components/DynamicLayoutComponent.razor.cs

@ -6,5 +6,5 @@ namespace Volo.Abp.AspNetCore.Components.Web.Theming.Components;
public partial class DynamicLayoutComponent : ComponentBase
{
[Inject]
protected IOptions<AbpDynamicLayoutComponentOptions> AbpDynamicLayoutComponentOptions { get; set; }
protected IOptions<AbpDynamicLayoutComponentOptions> AbpDynamicLayoutComponentOptions { get; set; } = default!;
}

8
framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Components/LayoutHooks/LayoutHook.razor.cs

@ -10,15 +10,15 @@ namespace Volo.Abp.AspNetCore.Components.Web.Theming.Components.LayoutHooks;
public partial class LayoutHook : ComponentBase
{
[Parameter]
public string Name { get; set; }
public string Name { get; set; } = default!;
[Parameter]
public string Layout { get; set; }
public string? Layout { get; set; }
[Inject]
protected IOptions<AbpLayoutHookOptions> LayoutHookOptions { get; set; }
protected IOptions<AbpLayoutHookOptions> LayoutHookOptions { get; set; } = default!;
protected LayoutHookViewModel LayoutHookViewModel { get; private set; }
protected LayoutHookViewModel LayoutHookViewModel { get; private set; } = default!;
protected override Task OnInitializedAsync()
{

10
framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Layout/PageHeader.razor.cs

@ -13,13 +13,13 @@ public partial class PageHeader : ComponentBase
{
protected List<RenderFragment> ToolbarItemRenders { get; set; }
public IPageToolbarManager PageToolbarManager { get; set; }
public IPageToolbarManager PageToolbarManager { get; set; } = default!;
[Inject]
public PageLayout PageLayout { get; private set; }
public PageLayout PageLayout { get; private set; } = default!;
[Parameter] // TODO: Consider removing this property in future and use only PageLayout.
public string Title { get => PageLayout.Title; set => PageLayout.Title = value; }
public string? Title { get => PageLayout.Title; set => PageLayout.Title = value; }
[Parameter]
public bool BreadcrumbShowHome { get; set; } = true;
@ -28,7 +28,7 @@ public partial class PageHeader : ComponentBase
public bool BreadcrumbShowCurrent { get; set; } = true;
[Parameter]
public RenderFragment ChildContent { get; set; }
public RenderFragment ChildContent { get; set; } = default!;
[Parameter] // TODO: Consider removing this property in future and use only PageLayout.
public List<BreadcrumbItem> BreadcrumbItems {
@ -44,7 +44,7 @@ public partial class PageHeader : ComponentBase
}
[Parameter]
public PageToolbar Toolbar { get; set; }
public PageToolbar? Toolbar { get; set; }
public PageHeader()
{

12
framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Layout/PageLayout.cs

@ -9,10 +9,10 @@ namespace Volo.Abp.AspNetCore.Components.Web.Theming.Layout;
public class PageLayout : IScopedDependency, INotifyPropertyChanged
{
private string title;
private string? title;
// TODO: Consider using this property for setting Page Title too.
public virtual string Title {
public virtual string? Title {
get => title;
set {
title = value;
@ -20,9 +20,9 @@ public class PageLayout : IScopedDependency, INotifyPropertyChanged
}
}
private string menuItemName;
private string? menuItemName;
public string MenuItemName {
public string? MenuItemName {
get => menuItemName;
set
{
@ -35,9 +35,9 @@ public class PageLayout : IScopedDependency, INotifyPropertyChanged
public virtual ObservableCollection<PageToolbarItem> ToolbarItems { get; } = new();
public event PropertyChangedEventHandler PropertyChanged;
public event PropertyChangedEventHandler? PropertyChanged;
protected void OnPropertyChanged([CallerMemberName] string propertyName = null)
protected void OnPropertyChanged([CallerMemberName] string? propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}

16
framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/PageToolbars/PageToolbarExtensions.cs

@ -11,9 +11,9 @@ public static class PageToolbarExtensions
{
public static PageToolbar AddComponent<TComponent>(
this PageToolbar toolbar,
Dictionary<string, object> arguments = null,
Dictionary<string, object?>? arguments = null,
int order = 0,
string requiredPolicyName = null)
string? requiredPolicyName = null)
{
return toolbar.AddComponent(
typeof(TComponent),
@ -26,9 +26,9 @@ public static class PageToolbarExtensions
public static PageToolbar AddComponent(
this PageToolbar toolbar,
Type componentType,
Dictionary<string, object> arguments = null,
Dictionary<string, object?>? arguments = null,
int order = 0,
string requiredPolicyName = null)
string? requiredPolicyName = null)
{
toolbar.Contributors.Add(
new SimplePageToolbarContributor(
@ -46,14 +46,14 @@ public static class PageToolbarExtensions
this PageToolbar toolbar,
string text,
Func<Task> clicked,
object icon = null,
Color color = null,
object? icon = null,
Color? color = null,
bool disabled = false,
int order = 0,
string requiredPolicyName = null)
string? requiredPolicyName = null)
{
toolbar.AddComponent<ToolbarButton>(
new Dictionary<string, object>
new Dictionary<string, object?>
{
{ nameof(ToolbarButton.Color), color ?? Color.Primary},
{ nameof(ToolbarButton.Text), text},

5
framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/PageToolbars/PageToolbarItem.cs

@ -9,14 +9,13 @@ public class PageToolbarItem
[NotNull]
public Type ComponentType { get; }
[CanBeNull]
public Dictionary<string, object> Arguments { get; set; }
public Dictionary<string, object?>? Arguments { get; set; }
public int Order { get; set; }
public PageToolbarItem(
[NotNull] Type componentType,
[CanBeNull] Dictionary<string, object> arguments = null,
Dictionary<string, object?>? arguments = null,
int order = 0)
{
ComponentType = Check.NotNull(componentType, nameof(componentType));

8
framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/PageToolbars/SimplePageToolbarContributor.cs

@ -10,17 +10,17 @@ public class SimplePageToolbarContributor : IPageToolbarContributor
{
public Type ComponentType { get; }
public Dictionary<string, object> Arguments { get; set; }
public Dictionary<string, object?>? Arguments { get; set; }
public int Order { get; }
public string RequiredPolicyName { get; }
public string? RequiredPolicyName { get; }
public SimplePageToolbarContributor(
Type componentType,
Dictionary<string, object> arguments = null,
Dictionary<string, object?>? arguments = null,
int order = 0,
string requiredPolicyName = null)
string? requiredPolicyName = null)
{
ComponentType = componentType;
Arguments = arguments;

2
framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Routing/AbpRouterOptions.cs

@ -4,7 +4,7 @@ namespace Volo.Abp.AspNetCore.Components.Web.Theming.Routing;
public class AbpRouterOptions
{
public Assembly AppAssembly { get; set; }
public Assembly AppAssembly { get; set; } = default!;
public RouterAssemblyList AdditionalAssemblies { get; }

2
framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Theming/AbpThemingOptions.cs

@ -4,7 +4,7 @@ public class AbpThemingOptions
{
public ThemeDictionary Themes { get; }
public string DefaultThemeName { get; set; }
public string? DefaultThemeName { get; set; }
public AbpThemingOptions()
{

2
framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Theming/DefaultThemeManager.cs

@ -9,7 +9,7 @@ public class DefaultThemeManager : IThemeManager, IScopedDependency, IServicePro
public IServiceProvider ServiceProvider { get; }
public ITheme CurrentTheme => GetCurrentTheme();
private ITheme _currentTheme;
private ITheme? _currentTheme;
protected IThemeSelector ThemeSelector { get; }

3
framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Toolbars/IToolbarConfigurationContext.cs

@ -17,8 +17,7 @@ public interface IToolbarConfigurationContext : IServiceProviderAccessor
Task<bool> IsGrantedAsync(string policyName);
[CanBeNull]
IStringLocalizer GetDefaultLocalizer();
IStringLocalizer? GetDefaultLocalizer();
[NotNull]
public IStringLocalizer GetLocalizer<T>();

3
framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Toolbars/ToolbarConfigurationContext.cs

@ -32,8 +32,7 @@ public class ToolbarConfigurationContext : IToolbarConfigurationContext
return AuthorizationService.IsGrantedAsync(policyName);
}
[CanBeNull]
public IStringLocalizer GetDefaultLocalizer()
public IStringLocalizer? GetDefaultLocalizer()
{
return StringLocalizerFactory.CreateDefaultOrNull();
}

2
framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Toolbars/ToolbarItem.cs

@ -9,7 +9,7 @@ public class ToolbarItem
get => _componentType;
set => _componentType = Check.NotNull(value, nameof(value));
}
private Type _componentType;
private Type _componentType = default!;
public int Order { get; set; }

2
framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Volo.Abp.AspNetCore.Components.Web.Theming.csproj

@ -5,6 +5,8 @@
<PropertyGroup>
<TargetFramework>net7.0</TargetFramework>
<Nullable>enable</Nullable>
<WarningsAsErrors>Nullable</WarningsAsErrors>
</PropertyGroup>
<ItemGroup>

4
framework/src/Volo.Abp.UI/Volo/Abp/Ui/LayoutHooks/LayoutHookViewModel.cs

@ -4,9 +4,9 @@ public class LayoutHookViewModel
{
public LayoutHookInfo[] Hooks { get; }
public string Layout { get; }
public string? Layout { get; }
public LayoutHookViewModel(LayoutHookInfo[] hooks, string layout)
public LayoutHookViewModel(LayoutHookInfo[] hooks, string? layout)
{
Hooks = hooks;
Layout = layout;

Loading…
Cancel
Save