-
-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature/posts #421
base: main
Are you sure you want to change the base?
Feature/posts #421
Conversation
WalkthroughThe changes introduce new classes and properties for managing posts and groups within the application. Key additions include Changes
Sequence Diagram(s)sequenceDiagram
participant User
participant PostSearchService
participant Database
participant PostSearchResult
User->>PostSearchService: GetPostsAsync(filter)
PostSearchService->>Database: Query Posts with filters
Database-->>PostSearchService: Return filtered Posts
PostSearchService->>PostSearchResult: Create PostSearchResult
PostSearchService-->>User: Return PostSearchResult
Tip OpenAI O1 model for chat
Recent review detailsConfiguration used: CodeRabbit UI Files selected for processing (3)
Additional comments not posted (4)
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 6
Outside diff range, codebase verification and nitpick comments (2)
src/shared/Jordnaer.Shared/Extensions/PostExtensions.cs (1)
3-23
: Well-implemented extension method for data transformation.The
ToPostDto
method is a clean and effective way to transformPost
objects intoPostDto
instances. It properly utilizes properties and handles transformations with LINQ, which is idiomatic in C#.Consider evaluating the performance of the LINQ query in
Categories
transformation, especially if theCategories
collection can be large. It might be beneficial to optimize this part if performance issues arise.src/shared/Jordnaer.Shared/Posts/PostDto.cs (1)
5-21
: Well-structured DTO class with appropriate validations.The
PostDto
class is well-defined with necessary validations using data annotations, ensuring that the data conforms to expected formats and constraints. This is crucial for maintaining data integrity when transferring between layers or services.Consider adding XML documentation comments to the properties and the class itself to improve code maintainability and provide better context for other developers.
Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Files selected for processing (16)
- src/shared/Jordnaer.Shared/Database/GroupCategory.cs (1 hunks)
- src/shared/Jordnaer.Shared/Database/GroupPost.cs (1 hunks)
- src/shared/Jordnaer.Shared/Database/Post.cs (1 hunks)
- src/shared/Jordnaer.Shared/Database/PostCategory.cs (1 hunks)
- src/shared/Jordnaer.Shared/Extensions/PostExtensions.cs (1 hunks)
- src/shared/Jordnaer.Shared/Posts/PostDto.cs (1 hunks)
- src/shared/Jordnaer.Shared/Posts/PostSearchFilter.cs (1 hunks)
- src/shared/Jordnaer.Shared/Posts/PostSearchResult.cs (1 hunks)
- src/web/Jordnaer/Database/JordnaerDbContext.cs (2 hunks)
- src/web/Jordnaer/Features/Metrics/JordnaerMetrics.cs (1 hunks)
- src/web/Jordnaer/Features/PostSearch/PostSearchService.cs (1 hunks)
- src/web/Jordnaer/Features/Posts/PostService.cs (1 hunks)
- src/web/Jordnaer/Features/UserSearch/UserSearchService.cs (5 hunks)
- src/web/Jordnaer/Pages/Shared/TopBar.razor (1 hunks)
- src/web/Jordnaer/appsettings.Development.json (1 hunks)
- src/web/Jordnaer/appsettings.json (1 hunks)
Files skipped from review due to trivial changes (1)
- src/shared/Jordnaer.Shared/Database/GroupCategory.cs
Additional comments not posted (25)
src/shared/Jordnaer.Shared/Posts/PostSearchResult.cs (1)
3-7
: Well-structured class for search results.The
PostSearchResult
class is well-designed to encapsulate search results, with a list ofPostDto
and aTotalCount
property. The initialization ofPosts
with an empty list is a good practice, ensuring that the property is never null.src/shared/Jordnaer.Shared/Database/PostCategory.cs (1)
3-8
: Appropriate use ofrequired
properties for database integrity.The
PostCategory
class effectively represents a many-to-many relationship between posts and categories. The use ofrequired
for bothPostId
andCategoryId
ensures that these fields are always initialized, which is crucial for maintaining database integrity.src/web/Jordnaer/appsettings.Development.json (1)
1-21
: Well-configured feature flags and logging settings.The configuration in
appsettings.Development.json
is well-structured, providing clear management of feature flags and detailed logging settings. This setup will facilitate easy toggling of features and effective monitoring and debugging through the specified logging levels.src/web/Jordnaer/appsettings.json (2)
15-15
: Approved change in logging level.The change from "Debug" to "Information" for the default logging level is a good practice for production environments as it reduces log verbosity and can help in managing log storage and processing overhead effectively.
Consider verifying the impact of this change on existing logging to ensure no critical information is missed.
21-21
: Approved change in MudBlazor logging level.Changing the logging level for "MudBlazor" from "Information" to "Warning" is likely aimed at reducing log clutter and focusing on more significant issues. This is generally a good practice, especially if "MudBlazor" logs are verbose.
Monitor the logs after this change to ensure that no important information is being omitted.
src/shared/Jordnaer.Shared/Database/Post.cs (1)
6-27
: Review of thePost
classThe
Post
class is well-structured with appropriate use of data annotations for validation and database configuration. Here are some specific observations:
- ID Configuration: The use of
[Key]
and[DatabaseGenerated(DatabaseGeneratedOption.None)]
onId
suggests that IDs are expected to be provided by the application rather than generated by the database. This is an important design decision that should be documented.- Validation: The
StringLength
andRequired
attributes onText
are used effectively to enforce content rules.- Default Values: The initialization of
CreatedUtc
toDateTimeOffset.UtcNow
is a good practice to ensure that the creation time is always set.- Nullable Properties:
ZipCode
andCity
are nullable, which is appropriate if these are optional details for a post.- Relationships: The use of
ForeignKey
attributes onUserProfileId
and the initialization ofUserProfile
andCategories
are correctly implemented to manage relationships and collections.Overall, the class is implemented correctly with attention to detail in managing data integrity and relationships.
src/shared/Jordnaer.Shared/Database/GroupPost.cs (1)
6-30
: Review of theGroupPost
classThe
GroupPost
class is similar to thePost
class but includes additional handling for group-related properties. Here are some specific observations:
- ID and Validation: The configuration and validation for
Id
andText
are consistent with thePost
class, which is good for consistency across entity definitions.- Group Relationship: The addition of
GroupId
andGroup
with theForeignKey
attribute is correctly implemented to link posts to specific groups.- Default Values and Nullable Properties: Similar to the
Post
class, default values and nullable properties are handled appropriately.This class effectively extends the functionality of the
Post
class to accommodate group-specific features while maintaining consistency in design and implementation.src/web/Jordnaer/Pages/Shared/TopBar.razor (1)
6-18
: Enhancements to theTopBar.razor
The modifications to the
TopBar.razor
file introduce dynamic feature management and improve the layout for better user experience. Here are some specific observations:
- Feature Flag Integration: The introduction of the
<Feature>
component to conditionally render the posts button based onFeatureFlags.Posts
is a smart use of feature flags to control UI elements dynamically.- Layout Adjustment: The reorganization of the
<AuthorizeView>
components to accommodate the new feature button helps in maintaining a clean and user-friendly navigation bar.These changes are well-thought-out and align with the objectives of enhancing functionality and user experience.
src/shared/Jordnaer.Shared/Posts/PostSearchFilter.cs (1)
5-22
: Well-structured class for post search filtering.The
PostSearchFilter
class is well-designed with appropriate properties and validation attributes to handle various aspects of post search filtering. The use of default values for arrays and pagination settings is a good practice to avoid null issues.src/web/Jordnaer/Features/PostSearch/PostSearchService.cs (2)
9-12
: Interface Design ApprovedThe
IPostSearchService
interface is well-defined, providing a clear contract for implementing classes.
15-17
: Class Constructor ReviewThe constructor correctly uses dependency injection for
IDbContextFactory<JordnaerDbContext>
andIZipCodeService
, ensuring that the class is testable and modular.src/web/Jordnaer/Features/Metrics/JordnaerMetrics.cs (2)
43-44
: Approved: Addition ofPostSearchesCounter
.The new counter for tracking post searches is correctly initialized and follows the established pattern for metric counters in the application.
45-46
: Approved: Addition ofPostsCreatedCounter
.The new counter for tracking the creation of posts is correctly initialized and follows the established pattern for metric counters in the application.
src/web/Jordnaer/Features/Posts/PostService.cs (3)
22-34
: Approved: Implementation ofGetPostAsync
.The method is well-implemented with proper asynchronous handling and use of LINQ for querying. The use of
OneOf
for the return type is appropriate for handling scenarios where the post might not be found.
37-55
: Approved: Implementation ofCreatePostAsync
.The method efficiently checks for the existence of a post using
AsNoTracking
before adding a new one. The error handling and asynchronous commit of changes are appropriately implemented.
58-73
: Verify: Use ofExecuteDeleteAsync
inDeletePostAsync
.The method is generally well-implemented, but the use of
ExecuteDeleteAsync
is not standard in EF Core. Please verify if this is a custom implementation or extension method and ensure it is correctly implemented.src/web/Jordnaer/Database/JordnaerDbContext.cs (4)
14-14
: Verify: Simplification ofChats
DbSet type.The change from
DbSet<Shared.Chat>
toDbSet<Chat>
suggests a refactoring of theChat
entity. Please verify that all references to this DbSet are correctly updated to reflect the new type.
23-23
: Approved: Addition ofPosts
DbSet.The addition of the
Posts
DbSet is consistent with the expansion of the application's functionality. Please ensure that thePost
entity is correctly configured in theOnModelCreating
method.
24-24
: Approved: Addition ofGroupPosts
DbSet.The addition of the
GroupPosts
DbSet is consistent with the expansion of the application's functionality. Please ensure that theGroupPost
entity is correctly configured in theOnModelCreating
method.
28-43
: Approved: Updates inOnModelCreating
forPost
andGroupPost
.The new configurations for
Post
andGroupPost
entities are correctly defined, establishing necessary relationships with other entities. Please conduct a thorough verification to ensure these configurations do not introduce any unintended consequences or conflicts with existing configurations.src/web/Jordnaer/Features/UserSearch/UserSearchService.cs (5)
28-28
: Clarification on Pagination LogicThe comment added to the
Take(11)
method call provides a clear explanation for why 11 users are fetched instead of 10. This is a good practice as it enhances code readability and understanding, especially for those unfamiliar with the pagination logic.
122-122
: Visibility Change:ApplyCategoryFilter
The change from
private
tointernal
forApplyCategoryFilter
is approved, assuming it is intended to facilitate testing or reuse within the assembly. As with any visibility change, verify that it does not expose more than necessary.Verification successful
Visibility Change Verified:
ApplyCategoryFilter
The change from
private
tointernal
for theApplyCategoryFilter
method is appropriate. The method is used within the assembly, primarily in test files and other service files, which aligns with the intended scope of aninternal
method. There are no indications of unintended exposure.
- References found in test files and other service files within the assembly.
Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify that the `ApplyCategoryFilter` method is not exposed beyond intended use within the assembly. # Test: Search for references to `ApplyCategoryFilter` outside expected files. Expect: No occurrences outside expected scope. rg --type cs --glob '!UserSearchService.cs' 'ApplyCategoryFilter'Length of output: 1951
133-133
: Visibility Change:ApplyNameFilter
The visibility change for
ApplyNameFilter
fromprivate
tointernal
is approved. This change likely aims to facilitate testing or reuse. Ensure that it does not lead to unintended exposure of functionality.Verification successful
Visibility Change Verified:
ApplyNameFilter
The change in visibility for the
ApplyNameFilter
method inUserSearchService.cs
fromprivate
tointernal
does not expose it beyond its intended use. The references found are for a different method with the same name in a different context. The change is safe and approved.Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify that the `ApplyNameFilter` method is not exposed beyond intended use within the assembly. # Test: Search for references to `ApplyNameFilter` outside expected files. Expect: No occurrences outside expected scope. rg --type cs --glob '!UserSearchService.cs' 'ApplyNameFilter'Length of output: 1073
Line range hint
94-114
: Visibility Change:ApplyLocationFilterAsync
Changing the access modifier from
private
tointernal
forApplyLocationFilterAsync
allows broader access within the assembly. This can facilitate testing and reuse in other components. However, ensure that this change does not unintentionally expose internal details that should remain encapsulated.Verification successful
Visibility Change Verified:
ApplyLocationFilterAsync
The change in visibility from
private
tointernal
for theApplyLocationFilterAsync
method is consistent with its usage across multiple services within the same assembly. This change facilitates code reuse and maintainability without exposing the method beyond the intended scope.
- Files using
ApplyLocationFilterAsync
:
src/web/Jordnaer/Features/PostSearch/PostSearchService.cs
src/web/Jordnaer/Features/GroupSearch/GroupSearchService.cs
This confirms that the change is appropriate and aligns with the intended design.
Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify that the `ApplyLocationFilterAsync` method is not exposed beyond intended use within the assembly. # Test: Search for references to `ApplyLocationFilterAsync` outside expected files. Expect: No occurrences outside expected scope. rg --type cs --glob '!UserSearchService.cs' 'ApplyLocationFilterAsync'Length of output: 671
144-144
: Visibility Change:ApplyChildFilters
The change from
private
tointernal
forApplyChildFilters
is approved, assuming it is intended to facilitate testing or reuse within the assembly. Verify that this change does not expose more functionality than intended.Verification successful
Visibility Change Verified:
ApplyChildFilters
The change from
private
tointernal
forApplyChildFilters
does not expose the method beyond its intended scope, as there are no external references. This change is appropriate for internal reuse or testing purposes. No further action is needed.Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify that the `ApplyChildFilters` method is not exposed beyond intended use within the assembly. # Test: Search for references to `ApplyChildFilters` outside expected files. Expect: No occurrences outside expected scope. rg --type cs --glob '!UserSearchService.cs' 'ApplyChildFilters'Length of output: 63
Script:
#!/bin/bash # Re-run the search for references to `ApplyChildFilters` outside the `UserSearchService.cs` file to verify the previous result. rg --type cs --glob '!src/web/Jordnaer/Features/UserSearch/UserSearchService.cs' 'ApplyChildFilters'Length of output: 100
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
Outside diff range, codebase verification and nitpick comments (1)
src/web/Jordnaer/Features/GroupSearch/GroupSearchService.cs (1)
Line range hint
9-36
: Well-structured method, but consider immediate error handling improvements.The
GetGroupsAsync
method is well-implemented with clear logic for filtering and paginating groups. It efficiently uses asynchronous operations and Entity Framework capabilities. However, as noted in the TODO comment, adding error handling would significantly improve the method's robustness and fault tolerance.Consider implementing the error handling improvements sooner rather than later to prevent potential issues in production environments.
Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Files selected for processing (3)
- src/web/Jordnaer/Features/GroupSearch/GroupSearchService.cs (1 hunks)
- src/web/Jordnaer/Features/PostSearch/PostSearchService.cs (1 hunks)
- src/web/Jordnaer/Features/UserSearch/UserSearchService.cs (6 hunks)
Files skipped from review as they are similar to previous changes (2)
- src/web/Jordnaer/Features/PostSearch/PostSearchService.cs
- src/web/Jordnaer/Features/UserSearch/UserSearchService.cs
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 5
Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Files selected for processing (6)
- src/web/Jordnaer/Features/GroupPosts/PostService.cs (1 hunks)
- src/web/Jordnaer/Features/Posts/CreatePostComponent.razor (1 hunks)
- src/web/Jordnaer/Features/Posts/PostSearchForm.razor (1 hunks)
- src/web/Jordnaer/Features/Posts/PostSearchResultComponent.razor (1 hunks)
- src/web/Jordnaer/Pages/Posts/Posts.razor (1 hunks)
- src/web/Jordnaer/_Imports.razor (1 hunks)
Additional context used
GitHub Check: test
src/web/Jordnaer/Features/Posts/CreatePostComponent.razor
[warning] 25-25:
Possible null reference assignment.src/web/Jordnaer/Pages/Posts/Posts.razor
[warning] 17-17:
Component 'PostSearchForm' expects a value for the parameter 'FilterChanged', but a value may not have been provided.src/web/Jordnaer/Features/Posts/PostSearchForm.razor
[warning] 56-56:
The field 'PostSearchForm._recentlyClearedForm' is assigned but its value is never used
Additional comments not posted (13)
src/web/Jordnaer/Features/Posts/CreatePostComponent.razor (2)
1-6
: Injections are appropriate for the component's functionality.The injected services (
IPostService
,IPostSearchService
,NavigationManager
,IJSRuntime
,ISnackbar
) are essential for the functionality of the component, which includes creating posts and interacting with the user interface.
8-12
: Component structure and bindings are correctly implemented.The use of MudBlazor components (
MudPaper
,MudText
,MudTextField
,MudButton
) provides a consistent and user-friendly interface. The binding ofnewPostContent
to theMudTextField
is correctly implemented, allowing for dynamic data handling in the component.src/web/Jordnaer/Features/Posts/PostSearchResultComponent.razor (2)
5-25
: Component structure for displaying posts is well-implemented.The use of
MudGrid
,MudItem
, andMudCard
components to display each post ensures a clean and responsive layout. The pagination implemented withMudPagination
is crucial for handling large sets of results and is appropriately configured with dynamic properties.
27-35
: Parameter handling and pagination logic are correctly implemented.The use of
[Parameter, EditorRequired]
attributes ensures that essential data is provided to the component. TheSelectedPageChanged
event is properly configured to handle pagination, which is crucial for user interactions with search results.src/web/Jordnaer/_Imports.razor (1)
23-25
: Addition of namespaces enhances feature accessibility.The inclusion of
@using Jordnaer.Features.Posts
,@using Jordnaer.Features.PostSearch
, and@using Jordnaer.Features.GroupPosts
is appropriate and aligns with the PR objectives to enhance the application's post functionalities. This change facilitates easier access to these features across the application.src/web/Jordnaer/Pages/Posts/Posts.razor (4)
1-4
: Proper setup of page directive and services.The
@page
directive and dependency injections are correctly implemented, ensuring the necessary services are available for the page.
8-9
: Good use of metadata for SEO and user experience.The
MetadataComponent
is properly configured with a title and description, enhancing the page's SEO and providing clear information to users.
19-32
: Well-implemented conditional rendering for search results.The logic correctly handles scenarios where no search has been performed or no results are found, providing clear feedback to the user.
34-40
: Appropriate use of components for ads and search results.The
SponsorAd
andPostSearchResultComponent
are correctly implemented, enhancing the page's functionality and user engagement.src/web/Jordnaer/Features/GroupPosts/PostService.cs (3)
23-35
: Ensure proper handling ofNotFound
type.The method implementation looks correct. However, ensure that the
NotFound
type returned when a post is not found is properly handled in the calling code to provide appropriate user feedback or logging.
38-56
: Verify language consistency in error messages.The method is well-implemented and efficiently checks for duplicate posts before attempting to create a new one. However, the error message "Opslaget eksisterer allerede" is in Danish. Please verify that this aligns with the language consistency across the application or if multilingual support is intended.
59-74
: Verify the use ofExecuteDeleteAsync
.The method implementation for deleting a post appears correct. However,
ExecuteDeleteAsync
is used, which is not a standard Entity Framework method. Please ensure that this method is part of a reliable extension or has been properly implemented and tested in your project.src/web/Jordnaer/Features/Posts/PostSearchForm.razor (1)
1-2
: Well-configured UI and dependency injections.The dependency injections for
NavigationManager
andIJSRuntime
are correctly set up, which are essential for navigation and JavaScript interactions in Blazor applications. The UI layout using MudBlazor components is well-structured and should provide a good user experience.Also applies to: 4-41
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Files selected for processing (5)
- src/shared/Jordnaer.Shared/Database/Post.cs (1 hunks)
- src/web/Jordnaer/Features/Posts/CreatePostComponent.razor (1 hunks)
- src/web/Jordnaer/Features/Posts/PostCardComponent.razor (1 hunks)
- src/web/Jordnaer/Features/Posts/PostSearchForm.razor (1 hunks)
- src/web/Jordnaer/Features/Posts/PostSearchResultComponent.razor (1 hunks)
Files skipped from review as they are similar to previous changes (3)
- src/shared/Jordnaer.Shared/Database/Post.cs
- src/web/Jordnaer/Features/Posts/PostSearchForm.razor
- src/web/Jordnaer/Features/Posts/PostSearchResultComponent.razor
Additional context used
GitHub Check: test
src/web/Jordnaer/Features/Posts/CreatePostComponent.razor
[failure] 31-31:
The type of component 'MudCheckBox' cannot be inferred based on the values provided. Consider specifying the type arguments directly using the following attributes: 'T'.
Additional comments not posted (1)
src/web/Jordnaer/Features/Posts/PostCardComponent.razor (1)
1-22
: LGTM!The
PostCardComponent
is well-implemented and follows best practices:
- It uses MudBlazor components for consistent styling.
- It handles null checks for optional properties like
ZipCode
andCity
.- The
Post
parameter is marked as required, ensuring that the component always receives a validPostDto
object.The code changes are approved.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Files selected for processing (1)
- src/web/Jordnaer/Features/Posts/CreatePostComponent.razor (1 hunks)
Additional context used
GitHub Check: test
src/web/Jordnaer/Features/Posts/CreatePostComponent.razor
[warning] 1-1:
Illegal Parameter 'Checked' on 'MudCheckBox' using 'V7IgnoreCase' source location '(574,24)-(582,25)' (https://mudblazor.com/features/analyzers)
[warning] 1-1:
Illegal Attribute 'CheckedChanged' on 'MudCheckBox' using pattern 'LowerCase' source location '(583,24)-(583,246)' (https://mudblazor.com/features/analyzers)
Additional comments not posted (3)
src/web/Jordnaer/Features/Posts/CreatePostComponent.razor (3)
69-73
: The null reference issue has been addressed.The code has been updated to check for null on
_userProfile
before accessing its properties. The previous comment about adding a null check forCurrentUser
is no longer valid.
31-31
: The type parameter issue has been addressed.The code has been updated to set the type parameter
T
tobool
for theMudCheckBox
component. The previous comment about setting the type parameter is no longer valid.
62-95
: TheCreatePost
method looks good!The method is well-structured and follows best practices such as:
- Checking for empty input and returning early.
- Checking for null user profile and displaying a message.
- Setting the post properties before creating the post.
- Handling the result of creating the post and displaying appropriate messages.
No issues or improvements identified. Good job!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Files selected for processing (3)
- src/web/Jordnaer/Features/Posts/CreatePostComponent.razor (1 hunks)
- src/web/Jordnaer/Features/Posts/PostCardComponent.razor (1 hunks)
- src/web/Jordnaer/Features/Posts/PostSearchForm.razor (1 hunks)
Files skipped from review as they are similar to previous changes (3)
- src/web/Jordnaer/Features/Posts/CreatePostComponent.razor
- src/web/Jordnaer/Features/Posts/PostCardComponent.razor
- src/web/Jordnaer/Features/Posts/PostSearchForm.razor
No description provided.