AddBookmarkPage.cs
1 // Copyright (c) Microsoft Corporation 2 // The Microsoft Corporation licenses this file to you under the MIT license. 3 // See the LICENSE file in the project root for more information. 4 5 using Microsoft.CmdPal.Ext.Bookmarks.Persistence; 6 using Microsoft.CommandPalette.Extensions; 7 using Windows.Foundation; 8 9 namespace Microsoft.CmdPal.Ext.Bookmarks.Pages; 10 11 internal sealed partial class AddBookmarkPage : ContentPage 12 { 13 internal event TypedEventHandler<object, BookmarkData>? AddedCommand 14 { 15 add => _addBookmarkForm.AddedCommand += value; 16 remove => _addBookmarkForm.AddedCommand -= value; 17 } 18 19 private readonly AddBookmarkForm _addBookmarkForm; 20 21 public AddBookmarkPage(BookmarkData? bookmark) 22 { 23 var name = bookmark?.Name ?? string.Empty; 24 var url = bookmark?.Bookmark ?? string.Empty; 25 26 Icon = Icons.BookmarkIcon; 27 var isAdd = string.IsNullOrEmpty(name) && string.IsNullOrEmpty(url); 28 Title = isAdd ? Resources.bookmarks_add_title : Resources.bookmarks_edit_name; 29 Name = isAdd ? Resources.bookmarks_add_name : Resources.bookmarks_edit_name; 30 _addBookmarkForm = new AddBookmarkForm(bookmark); 31 } 32 33 public override IContent[] GetContent() => [_addBookmarkForm]; 34 }