Skip to content
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

fix(web): OJOI web search #16475

Merged
merged 5 commits into from
Oct 18, 2024
Merged

fix(web): OJOI web search #16475

merged 5 commits into from
Oct 18, 2024

Conversation

jonbjarnio
Copy link
Member

@jonbjarnio jonbjarnio commented Oct 18, 2024

What

Implemented search properly on the public web.

Why

To allow users to be able to search for specific adverts.

Checklist:

  • I have performed a self-review of my own code
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • Formatting passes locally with my changes
  • I have rebased against main before asking for a review

Summary by CodeRabbit

Release Notes

  • New Features

    • Enhanced search functionality with improved state management in the search component.
    • Introduction of a custom hook for fetching advertisements, streamlining data retrieval.
    • New utility function for safe mapping of enum values.
    • New import for the Comments component in the AdvertScreen, expanding its capabilities.
  • Improvements

    • Updated advertisement display structure for better user experience.
    • Enhanced error handling for user feedback in the advertisement section.
    • Updated GraphQL queries and input types to reflect new naming conventions.
  • Bug Fixes

    • Improved handling of comments with updated GraphQL queries and input types.
  • Chores

    • Cleaned up imports and updated type definitions across various components for consistency.

@jonbjarnio jonbjarnio requested a review from a team as a code owner October 18, 2024 14:49
Copy link
Contributor

coderabbitai bot commented Oct 18, 2024

Walkthrough

The changes in this pull request encompass updates to various components and utilities within the Official Journal of Iceland application. Key modifications include the enhancement of the removeEmptyFromObject function to accept a wider range of data types, the introduction of a new useAdverts hook for fetching advertisements, and significant updates to the search functionality and comment handling. Additionally, several GraphQL queries and input types have been renamed and modified to align with new naming conventions, while various components have been streamlined for improved rendering and state management.

Changes

File Change Summary
apps/web/components/OfficialJournalOfIceland/OJOIUtils.ts Updated removeEmptyFromObject parameter type to accept string, number, Date, or undefined.
apps/web/screens/OfficialJournalOfIceland/OJOIHome.tsx Removed OJOIAdvertCard and OJOISearchListView components; updated OJOIHomePage structure for adverts.
apps/web/screens/OfficialJournalOfIceland/OJOISearch.tsx Enhanced search functionality; introduced updateSearchStateHandler and refactored advert fetching logic.
apps/web/screens/OfficialJournalOfIceland/hooks/index.ts Re-exported all entities from the useAdverts module.
apps/web/screens/OfficialJournalOfIceland/hooks/useAdverts.ts Introduced useAdverts hook for fetching advertisements with TypeScript types for enhanced type safety.
libs/api/domains/official-journal-of-iceland-application/src/lib/mappers.ts Introduced safeEnumMapper function for safe enum mapping.
libs/api/domains/official-journal-of-iceland-application/src/lib/ojoiApplication.resolver.ts Renamed GraphQL operation names for getComments and postComment.
libs/api/domains/official-journal-of-iceland-application/src/lib/ojoiApplication.service.ts Updated getComments return type and modified postComment to await results.
libs/api/domains/official-journal-of-iceland-application/src/models/getComments.input.ts Updated GetCommentsInput type name.
libs/api/domains/official-journal-of-iceland-application/src/models/getComments.response.ts Added CommentDirection enum; modified CaseComment and GetCommentsResponse classes.
libs/api/domains/official-journal-of-iceland-application/src/models/postComment.input.ts Updated PostCommentInput type name.
libs/application/templates/official-journal-of-iceland/src/components/comments/Comment.tsx Updated props structure for Comment component.
libs/application/templates/official-journal-of-iceland/src/components/comments/CommentList.tsx Changed comments prop type to Array<OjoiaComment>.
libs/application/templates/official-journal-of-iceland/src/components/htmlEditor/HTMLEditor.css.ts Removed global styles related to signatures.
libs/application/templates/official-journal-of-iceland/src/components/input/OJOIHtmlController.tsx Removed config prop from Editor component.
libs/application/templates/official-journal-of-iceland/src/fields/Comments.tsx Simplified comments passing to CommentsList.
libs/application/templates/official-journal-of-iceland/src/graphql/queries.ts Updated GET_COMMENTS_QUERY and POST_COMMENT_MUTATION input types and response structures.
libs/application/templates/official-journal-of-iceland/src/hooks/useComments.ts Renamed types and properties related to comments.
libs/application/templates/official-journal-of-iceland/src/hooks/useTypes.ts Added optional parameters and changed department field to optional.
libs/application/templates/official-journal-of-iceland/src/lib/utils.ts Modified HTML markup generation for signatures and members.
libs/application/templates/official-journal-of-iceland/src/screens/AdvertScreen.tsx Added import for Comments component.
libs/clients/official-journal-of-iceland/application/src/clientConfig.json Updated OpenAPI specification with new required properties and schema changes.

Possibly related PRs

Suggested reviewers

  • Valur
  • thorkellmani
  • kksteini

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?

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

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)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 19

🧹 Outside diff range and nitpick comments (18)
libs/api/domains/official-journal-of-iceland-application/src/models/postComment.input.ts (1)

3-3: Approved: Input type name updated, consider adding a clarifying comment.

The change from 'OfficialJournalOfIcelandApplicationPostCommentInput' to 'OJOIAPostCommentInput' is good as it makes the name more concise. This aligns with the PR objectives and the AI-generated summary.

Consider adding a comment to clarify the meaning of the 'OJOIA' abbreviation for better code readability. For example:

// OJOIA: Official Journal Of Iceland Application
@InputType('OJOIAPostCommentInput')
libs/application/templates/official-journal-of-iceland/src/components/comments/CommentList.tsx (1)

8-8: Type definition update looks good.

The change to use OjoiaComment from the shared API schema is a good move for consistency. However, for better readability and consistency with TypeScript conventions, consider using the array shorthand notation:

comments?: OjoiaComment[]

This maintains the same type safety while being more concise.

apps/web/screens/OfficialJournalOfIceland/lib/advert-params.mapper.ts (1)

1-43: Overall, good implementation with room for minor improvements.

This utility function is well-structured, type-safe, and aligns with NextJS best practices. It demonstrates good use of TypeScript and has a clear, focused purpose. The suggested refactoring for conciseness and the addition of input validation would further enhance its robustness and maintainability.

Consider adding unit tests for this utility function to ensure its behavior remains consistent across future changes.

libs/application/templates/official-journal-of-iceland/src/hooks/useTypes.ts (1)

33-46: LGTM: Improved pagination handling and query variables

The addition of default values for page and pageSize, along with the use of the params object in the useQuery call, enhances the hook's functionality and maintainability. These changes align well with the PR's objective and adhere to effective tree-shaking and bundling practices.

Consider a minor optimization: you could set the default values when declaring the params object, which would make the code more concise. For example:

const params: TypesVariables['params'] = {
  page: 1,
  pageSize: 1000,
};

if (departmentId) {
  params.department = departmentId;
}

This approach reduces the number of conditional statements and makes the default values more immediately apparent.

libs/application/templates/official-journal-of-iceland/src/hooks/useComments.ts (3)

10-10: LGTM: Type definition updated correctly

The CommentsResponse type has been updated to use the new property name OJOIAGetComments. This change is consistent with the renaming pattern and follows a more concise naming convention.

For consistency with the import statement, consider using Ojoia instead of OJOIA in the property name:

OjoiaGetComments: OjoiaGetCommentsResponse

18-20: LGTM: PostCommentResponse type updated correctly

The PostCommentResponse type has been updated to use the new property name OJOIAPostComment. This change is consistent with the renaming pattern and follows a more concise naming convention.

For consistency with the previous suggestion, consider using Ojoia instead of OJOIA in the property name:

OjoiaPostComment: {
  success: boolean
}

65-72: LGTM: Return statement updated correctly

The return statement has been updated to use the new property names OJOIAGetComments and OJOIAPostComment. These changes are consistent with the type renaming and follow good practices like optional chaining.

For consistency with the previous suggestions, consider using Ojoia instead of OJOIA in the property names:

comments: data?.OjoiaGetComments.comments,
// ...
addCommentSuccess: addCommentSuccess?.OjoiaPostComment.success,
apps/web/screens/OfficialJournalOfIceland/hooks/useAdverts.ts (1)

36-55: Hook implementation is solid, but consider the caching strategy.

The useAdverts hook is well-implemented, following React and Apollo best practices. It efficiently handles optional parameters, constructs query variables using a helper function, and returns a comprehensive object with all necessary data and states.

The use of optional chaining and fallback data in the return statement (line 49) is a good practice for handling potential undefined data.

However, I have one suggestion:

Consider if the 'no-cache' fetch policy is the best option for all use cases. Depending on how frequently the advertisement data changes and how often it's accessed, you might want to implement a caching strategy to improve performance and reduce unnecessary network requests.

You could consider using a policy like 'cache-and-network' or 'cache-first' with a specific cache expiration time. This way, you can balance data freshness with performance:

const { data, loading, error, refetch } = useQuery<
  UseAdvertsResponse,
  UseAdvertsInput
>(ADVERTS_QUERY, {
  fetchPolicy: 'cache-and-network',
  nextFetchPolicy: 'cache-first',
  variables: { input: variables },
})

This change would fetch from the cache (if available) and also update from the network, providing a balance between performance and data freshness.

libs/api/domains/official-journal-of-iceland-application/src/lib/mappers.ts (1)

46-55: LGTM with suggestion: New safeEnumMapper function

The new safeEnumMapper function is a valuable addition that enhances type safety when working with enums. It aligns well with the PR objectives and follows the coding guidelines:

  1. Reusability: The generic implementation allows for use across different enum types.
  2. TypeScript usage: Proper use of generics and type constraints.
  3. Tree-shaking: The function is correctly exported for effective bundling.

Consider improving type safety by using keyof typeof instead of a custom EnumType. This change will ensure that only valid enum types can be passed to the function:

export const safeEnumMapper = <T extends Record<string, string>>(
  val: unknown,
  enumType: T
): T[keyof T] | null => {
  const found = (Object.values(enumType) as Array<T[keyof T]>).find(
    (enumVal) => enumVal === val
  );

  return found || null;
};

This modification allows TypeScript to infer the exact enum type, providing better type checking and autocomplete support when using the function.

apps/web/components/OfficialJournalOfIceland/OJOIUtils.ts (1)

20-22: Improved type safety and flexibility in removeEmptyFromObject function

The updated function signature enhances type safety and flexibility by explicitly allowing string, number, Date, and undefined as value types. This change adheres to TypeScript best practices and makes the function more versatile without altering its core behavior.

Consider adding a generic type parameter to make the function even more flexible:

export const removeEmptyFromObject = <T extends string | number | Date | undefined>(
  obj: Record<string, T>
): Record<string, T> => {
  return Object.entries(obj)
    .filter(([_, v]) => !!v)
    .reduce((acc, [k, v]) => ({ ...acc, [k]: v }), {} as Record<string, T>)
}

This change would allow the function to preserve the specific types of the input object's values in its return type.

libs/application/templates/official-journal-of-iceland/src/lib/utils.ts (2)

202-203: Improved logic and maintainability

The changes in the signatureTemplate function enhance code readability and efficiency:

  1. The simplified membersCount calculation is more concise and easier to understand.
  2. The updated gridTemplateColumns logic efficiently handles cases for 1, 2, and 3 members.

These improvements contribute to better maintainability and potentially more effective tree-shaking. The consistent use of TypeScript for type inference is commendable.

For even better readability, consider using a switch statement or an object lookup for the gridTemplateColumns logic:

const gridTemplateColumns = {
}[membersCount] || '1fr 1fr';

This approach could make the code more extensible for future member count cases.

Also applies to: 209-211


Line range hint 187-192: Enhanced layout consistency

The addition of a fixed margin-bottom: 1.5em; to the signature__member div improves layout consistency across different uses of this component. This change enhances the reusability of the component by standardizing its spacing.

To further improve maintainability and adhere to the principle of reusability across different NextJS apps, consider extracting commonly used style values (like the 1.5em margin) into a constants file or a theme configuration. This would allow for easier updates and ensure consistency across the entire application.

Example:

import { SPACING } from '../constants/styles';

// ...

<div class="signature__member" style={`margin-bottom: ${SPACING.medium};`}>

This approach would make it easier to maintain consistent spacing throughout the application and improve the overall maintainability of the code.

libs/clients/official-journal-of-iceland/application/src/clientConfig.json (1)

Line range hint 436-813: Summary of significant API changes

This update introduces several important changes to the API structure:

  1. ApplicationAdvert now requires an involvedPartyId.
  2. CaseCommentType has been simplified to a string enum.
  3. CaseComment schema has been substantially restructured with new required fields and removed properties.

These changes improve the API's structure and type safety but may have a significant impact on existing code. Ensure that all affected parts of the codebase are updated accordingly, and consider updating the API documentation to reflect these changes.

Consider implementing a versioning strategy for your API to make future breaking changes easier to manage. This could involve adding a version number to the API endpoints (e.g., /api/v2/) or using content negotiation with an Accept header.

libs/api/domains/official-journal-of-iceland-application/src/models/getComments.response.ts (1)

3-5: Consider Consistent Enum Value Naming

The enum CommentDirection uses lowercase string values 'sent' and 'received'. For consistency, consider using uppercase values to match the enum keys or ensure alignment with existing naming conventions in your codebase.

libs/application/templates/official-journal-of-iceland/src/components/comments/Comment.tsx (2)

37-39: Simplify string rendering for better readability

You can simplify the rendering of title and receiver by removing unnecessary template literals. Since title and receiver are already strings, they can be rendered directly.

Apply this diff to improve readability:

        <Text>
          <strong>{creator ? creator : f(comments.unknownUser.name)}</strong>{' '}
-          {title && `${title}`}
-          {receiver && ` ${receiver}`}
+          {title && title}
+          {receiver && ` ${receiver}`}
        </Text>

43-43: Consider renaming the age prop for clarity

The age prop may not clearly convey its purpose. To improve readability and maintain consistency, consider renaming it to something more descriptive like timeSincePosted or elapsedTime.

libs/api/domains/official-journal-of-iceland-application/src/lib/ojoiApplication.service.ts (1)

Line range hint 65-77: Consider adding error handling for potential exceptions in 'postComment' method

Similar to the getComments method, the postComment method does not handle exceptions that may arise from the asynchronous call to this.ojoiApplicationService.postComment(...). To ensure the application can handle errors appropriately and provide meaningful feedback, please consider implementing error handling using a try-catch block.

libs/application/templates/official-journal-of-iceland/src/graphql/queries.ts (1)

284-293: Ensure TypeScript Types Reflect Updated Query Structure

With the changes to the GET_COMMENTS_QUERY, ensure that any associated TypeScript types or interfaces are updated to match the new fields (id, age, title, direction, comment, creator, and receiver). This enhances type safety and prevents potential runtime errors in components consuming this data.

📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL

📥 Commits

Files that changed from the base of the PR and between 1972eb3 and 8e24e3a.

📒 Files selected for processing (23)
  • apps/web/components/OfficialJournalOfIceland/OJOIUtils.ts (1 hunks)
  • apps/web/screens/OfficialJournalOfIceland/OJOIHome.tsx (0 hunks)
  • apps/web/screens/OfficialJournalOfIceland/OJOISearch.tsx (15 hunks)
  • apps/web/screens/OfficialJournalOfIceland/hooks/index.ts (1 hunks)
  • apps/web/screens/OfficialJournalOfIceland/hooks/useAdverts.ts (1 hunks)
  • apps/web/screens/OfficialJournalOfIceland/lib/advert-params.mapper.ts (1 hunks)
  • libs/api/domains/official-journal-of-iceland-application/src/lib/mappers.ts (1 hunks)
  • libs/api/domains/official-journal-of-iceland-application/src/lib/ojoiApplication.resolver.ts (2 hunks)
  • libs/api/domains/official-journal-of-iceland-application/src/lib/ojoiApplication.service.ts (3 hunks)
  • libs/api/domains/official-journal-of-iceland-application/src/models/getComments.input.ts (1 hunks)
  • libs/api/domains/official-journal-of-iceland-application/src/models/getComments.response.ts (1 hunks)
  • libs/api/domains/official-journal-of-iceland-application/src/models/postComment.input.ts (1 hunks)
  • libs/application/templates/official-journal-of-iceland/src/components/comments/Comment.tsx (1 hunks)
  • libs/application/templates/official-journal-of-iceland/src/components/comments/CommentList.tsx (2 hunks)
  • libs/application/templates/official-journal-of-iceland/src/components/htmlEditor/HTMLEditor.css.ts (1 hunks)
  • libs/application/templates/official-journal-of-iceland/src/components/input/OJOIHtmlController.tsx (0 hunks)
  • libs/application/templates/official-journal-of-iceland/src/fields/Comments.tsx (1 hunks)
  • libs/application/templates/official-journal-of-iceland/src/graphql/queries.ts (1 hunks)
  • libs/application/templates/official-journal-of-iceland/src/hooks/useComments.ts (3 hunks)
  • libs/application/templates/official-journal-of-iceland/src/hooks/useTypes.ts (3 hunks)
  • libs/application/templates/official-journal-of-iceland/src/lib/utils.ts (2 hunks)
  • libs/application/templates/official-journal-of-iceland/src/screens/AdvertScreen.tsx (1 hunks)
  • libs/clients/official-journal-of-iceland/application/src/clientConfig.json (4 hunks)
💤 Files with no reviewable changes (2)
  • apps/web/screens/OfficialJournalOfIceland/OJOIHome.tsx
  • libs/application/templates/official-journal-of-iceland/src/components/input/OJOIHtmlController.tsx
✅ Files skipped from review due to trivial changes (1)
  • apps/web/screens/OfficialJournalOfIceland/hooks/index.ts
🧰 Additional context used
📓 Path-based instructions (20)
apps/web/components/OfficialJournalOfIceland/OJOIUtils.ts (1)

Pattern apps/**/*: "Confirm that the code adheres to the following:

  • NextJS best practices, including file structure, API routes, and static generation methods.
  • Efficient state management and server-side rendering techniques.
  • Optimal use of TypeScript for component and utility type safety."
apps/web/screens/OfficialJournalOfIceland/OJOISearch.tsx (1)

Pattern apps/**/*: "Confirm that the code adheres to the following:

  • NextJS best practices, including file structure, API routes, and static generation methods.
  • Efficient state management and server-side rendering techniques.
  • Optimal use of TypeScript for component and utility type safety."
apps/web/screens/OfficialJournalOfIceland/hooks/useAdverts.ts (1)

Pattern apps/**/*: "Confirm that the code adheres to the following:

  • NextJS best practices, including file structure, API routes, and static generation methods.
  • Efficient state management and server-side rendering techniques.
  • Optimal use of TypeScript for component and utility type safety."
apps/web/screens/OfficialJournalOfIceland/lib/advert-params.mapper.ts (1)

Pattern apps/**/*: "Confirm that the code adheres to the following:

  • NextJS best practices, including file structure, API routes, and static generation methods.
  • Efficient state management and server-side rendering techniques.
  • Optimal use of TypeScript for component and utility type safety."
libs/api/domains/official-journal-of-iceland-application/src/lib/mappers.ts (1)

Pattern libs/**/*: "Confirm that the code adheres to the following:

  • Reusability of components and hooks across different NextJS apps.
  • TypeScript usage for defining props and exporting types.
  • Effective tree-shaking and bundling practices."
libs/api/domains/official-journal-of-iceland-application/src/lib/ojoiApplication.resolver.ts (1)

Pattern libs/**/*: "Confirm that the code adheres to the following:

  • Reusability of components and hooks across different NextJS apps.
  • TypeScript usage for defining props and exporting types.
  • Effective tree-shaking and bundling practices."
libs/api/domains/official-journal-of-iceland-application/src/lib/ojoiApplication.service.ts (1)

Pattern libs/**/*: "Confirm that the code adheres to the following:

  • Reusability of components and hooks across different NextJS apps.
  • TypeScript usage for defining props and exporting types.
  • Effective tree-shaking and bundling practices."
libs/api/domains/official-journal-of-iceland-application/src/models/getComments.input.ts (1)

Pattern libs/**/*: "Confirm that the code adheres to the following:

  • Reusability of components and hooks across different NextJS apps.
  • TypeScript usage for defining props and exporting types.
  • Effective tree-shaking and bundling practices."
libs/api/domains/official-journal-of-iceland-application/src/models/getComments.response.ts (1)

Pattern libs/**/*: "Confirm that the code adheres to the following:

  • Reusability of components and hooks across different NextJS apps.
  • TypeScript usage for defining props and exporting types.
  • Effective tree-shaking and bundling practices."
libs/api/domains/official-journal-of-iceland-application/src/models/postComment.input.ts (1)

Pattern libs/**/*: "Confirm that the code adheres to the following:

  • Reusability of components and hooks across different NextJS apps.
  • TypeScript usage for defining props and exporting types.
  • Effective tree-shaking and bundling practices."
libs/application/templates/official-journal-of-iceland/src/components/comments/Comment.tsx (1)

Pattern libs/**/*: "Confirm that the code adheres to the following:

  • Reusability of components and hooks across different NextJS apps.
  • TypeScript usage for defining props and exporting types.
  • Effective tree-shaking and bundling practices."
libs/application/templates/official-journal-of-iceland/src/components/comments/CommentList.tsx (1)

Pattern libs/**/*: "Confirm that the code adheres to the following:

  • Reusability of components and hooks across different NextJS apps.
  • TypeScript usage for defining props and exporting types.
  • Effective tree-shaking and bundling practices."
libs/application/templates/official-journal-of-iceland/src/components/htmlEditor/HTMLEditor.css.ts (1)

Pattern libs/**/*: "Confirm that the code adheres to the following:

  • Reusability of components and hooks across different NextJS apps.
  • TypeScript usage for defining props and exporting types.
  • Effective tree-shaking and bundling practices."
libs/application/templates/official-journal-of-iceland/src/fields/Comments.tsx (1)

Pattern libs/**/*: "Confirm that the code adheres to the following:

  • Reusability of components and hooks across different NextJS apps.
  • TypeScript usage for defining props and exporting types.
  • Effective tree-shaking and bundling practices."
libs/application/templates/official-journal-of-iceland/src/graphql/queries.ts (1)

Pattern libs/**/*: "Confirm that the code adheres to the following:

  • Reusability of components and hooks across different NextJS apps.
  • TypeScript usage for defining props and exporting types.
  • Effective tree-shaking and bundling practices."
libs/application/templates/official-journal-of-iceland/src/hooks/useComments.ts (1)

Pattern libs/**/*: "Confirm that the code adheres to the following:

  • Reusability of components and hooks across different NextJS apps.
  • TypeScript usage for defining props and exporting types.
  • Effective tree-shaking and bundling practices."
libs/application/templates/official-journal-of-iceland/src/hooks/useTypes.ts (1)

Pattern libs/**/*: "Confirm that the code adheres to the following:

  • Reusability of components and hooks across different NextJS apps.
  • TypeScript usage for defining props and exporting types.
  • Effective tree-shaking and bundling practices."
libs/application/templates/official-journal-of-iceland/src/lib/utils.ts (1)

Pattern libs/**/*: "Confirm that the code adheres to the following:

  • Reusability of components and hooks across different NextJS apps.
  • TypeScript usage for defining props and exporting types.
  • Effective tree-shaking and bundling practices."
libs/application/templates/official-journal-of-iceland/src/screens/AdvertScreen.tsx (1)

Pattern libs/**/*: "Confirm that the code adheres to the following:

  • Reusability of components and hooks across different NextJS apps.
  • TypeScript usage for defining props and exporting types.
  • Effective tree-shaking and bundling practices."
libs/clients/official-journal-of-iceland/application/src/clientConfig.json (1)

Pattern libs/**/*: "Confirm that the code adheres to the following:

  • Reusability of components and hooks across different NextJS apps.
  • TypeScript usage for defining props and exporting types.
  • Effective tree-shaking and bundling practices."
🪛 Biome
apps/web/screens/OfficialJournalOfIceland/OJOISearch.tsx

[error] 540-540: isNaN is unsafe. It attempts a type coercion. Use Number.isNaN instead.

See the MDN documentation for more details.
Unsafe fix: Use Number.isNaN instead.

(lint/suspicious/noGlobalIsNan)


[error] 547-547: isNaN is unsafe. It attempts a type coercion. Use Number.isNaN instead.

See the MDN documentation for more details.
Unsafe fix: Use Number.isNaN instead.

(lint/suspicious/noGlobalIsNan)


[error] 554-554: isNaN is unsafe. It attempts a type coercion. Use Number.isNaN instead.

See the MDN documentation for more details.
Unsafe fix: Use Number.isNaN instead.

(lint/suspicious/noGlobalIsNan)


[error] 562-562: isNaN is unsafe. It attempts a type coercion. Use Number.isNaN instead.

See the MDN documentation for more details.
Unsafe fix: Use Number.isNaN instead.

(lint/suspicious/noGlobalIsNan)

🔇 Additional comments (23)
libs/api/domains/official-journal-of-iceland-application/src/models/getComments.input.ts (1)

Line range hint 1-8: LGTM: Changes adhere to coding guidelines

The modifications in this file comply with the coding guidelines for the libs directory:

  1. The input type remains reusable across different NextJS apps.
  2. TypeScript is correctly used for defining the input type and its field.
  3. The change doesn't negatively impact tree-shaking or bundling practices.
libs/application/templates/official-journal-of-iceland/src/components/comments/CommentList.tsx (2)

5-5: Good job on improving type consistency!

The change from a local CommentProps type to OjoiaComment from a shared API schema enhances type consistency across the application. This aligns well with our TypeScript usage guidelines and promotes better reusability across different NextJS apps.


27-27: Consider the implications of rendering changes and key usage.

  1. Removing the as="li" prop (if it was previously there) might affect the HTML structure. Ensure this doesn't break the list semantics or accessibility.

  2. Using index as a key can lead to performance issues and unexpected behavior if the list order changes. Consider using a unique identifier from the comment object as the key instead:

<Comment key={comment.id} {...comment} />

Replace comment.id with the actual unique identifier property of your OjoiaComment type.

To confirm the structure of OjoiaComment, run:

This will help identify the correct unique identifier to use as a key.

apps/web/screens/OfficialJournalOfIceland/lib/advert-params.mapper.ts (2)

1-4: LGTM: Function signature and setup are well-structured.

The function signature and initial setup follow TypeScript best practices. The use of optional parameters and type annotations enhances type safety, which aligns well with the coding guidelines for TypeScript usage in this project.


42-42: LGTM: Return statement is correct.

The function correctly returns the populated variables object, which aligns with its intended purpose of filtering and returning the provided advert parameters.

libs/application/templates/official-journal-of-iceland/src/hooks/useTypes.ts (3)

8-9: LGTM: Enhanced flexibility with pagination parameters

The addition of optional pageSize and page parameters to UseTypesParams improves the hook's flexibility and reusability. This change aligns well with the PR's objective of implementing a functional search feature and adheres to the TypeScript usage guideline for defining props.


27-31: LGTM: Improved parameter handling

The introduction of a params object and the conditional assignment of department enhance the hook's flexibility and reusability. This change allows the hook to work efficiently with or without a department, adhering to best practices for handling optional parameters.


18-18: Verify impact of optional department field

The change to make the department field optional in TypesVariables enhances the hook's flexibility and reusability. This aligns with our TypeScript usage guidelines. However, please ensure that this change doesn't break any existing code that might expect department to always be present.

To verify the impact, please run the following script:

✅ Verification successful

Run Updated Verification Script

To properly verify the impact of making the department field optional, please execute the following script:


Verify handling of optional department field in existing usages

To ensure that making the department field optional does not break existing code, please run the following script to check how department is used in the affected files:


Check for direct accesses of department without null checks

To ensure that making the department field optional does not lead to unhandled undefined scenarios, please run the following script to identify instances where department is accessed directly without proper checks:


Verified: Optional department Field Does Not Affect Existing Code

The update to make the department field optional has been verified. No direct accesses without proper checks were found in the existing codebase, ensuring that this change does not break any existing functionalities.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Search for usages of the Types query that might be affected by the optional department field
rg --type typescript -g '!**/useTypes.ts' 'TYPES_QUERY'

Length of output: 90


Script:

#!/bin/bash
# Search for usages of the TYPES_QUERY that might be affected by the optional department field
rg -t ts -g '!useTypes.ts' 'TYPES_QUERY'

Length of output: 390


Script:

#!/bin/bash
# Search for usages of 'department' in files where TYPES_QUERY is used
rg 'department' libs/application/templates/official-journal-of-iceland/src/graphql/queries.ts \
    apps/web/screens/queries/OfficialJournalOfIceland.ts \
    apps/web/screens/OfficialJournalOfIceland/OJOISearch.tsx

Length of output: 2964


Script:

#!/bin/bash
# Search for direct accesses to 'department' property without optional chaining
rg 'department\.' libs/application/templates/official-journal-of-iceland/src/graphql/queries.ts \
    apps/web/screens/queries/OfficialJournalOfIceland.ts \
    apps/web/screens/OfficialJournalOfIceland/OJOISearch.tsx

Length of output: 207

libs/application/templates/official-journal-of-iceland/src/hooks/useComments.ts (2)

2-2: LGTM: Import statement updated correctly

The import statement has been updated to use the new type name OjoiaGetCommentsResponse. This change aligns with the renaming of types and follows a more concise naming convention.


Line range hint 1-74: Overall assessment: Good changes with minor improvements needed

The changes in this file primarily involve renaming types and properties related to comments, which improves consistency and follows a more concise naming convention. The modifications adhere to the coding guidelines for the libs directory, including proper TypeScript usage and maintaining reusability.

Key points:

  1. The renaming of types and properties is consistent throughout the file.
  2. TypeScript usage is appropriate, with correct type definitions and exports.
  3. The hook structure remains intact, ensuring reusability across different NextJS apps.

Areas for improvement:

  1. Remove the console.log statement on line 49.
  2. Consider using consistent capitalization for "Ojoia" throughout the file (e.g., OjoiaGetComments instead of OJOIAGetComments).

Once these minor issues are addressed, the changes will be ready for approval.

apps/web/screens/OfficialJournalOfIceland/hooks/useAdverts.ts (1)

1-9: LGTM: Imports are well-structured and appropriate.

The imports are correctly organized, using named imports for better readability. They include necessary dependencies from Apollo Client, API schema, and local files, adhering to Next.js best practices for file structure.

libs/application/templates/official-journal-of-iceland/src/screens/AdvertScreen.tsx (1)

10-10: ⚠️ Potential issue

Remove unused import to improve tree-shaking.

The Comments component is imported but not used in this file. Unused imports can negatively impact tree-shaking and bundling efficiency.

To improve tree-shaking and bundling practices, remove the unused import:

-import { Comments } from '../fields/Comments'

If you plan to use this component in the future, consider adding a TODO comment instead of keeping the unused import.

Let's verify if the Comments component is used elsewhere in the codebase:

libs/api/domains/official-journal-of-iceland-application/src/lib/mappers.ts (1)

Line range hint 1-44: LGTM: Existing functions remain unchanged

The existing mapping functions mapAttachmentType, mapPresignedUrlType, and mapGetAttachmentType have not been modified. They continue to provide correct mapping logic for their respective enum types.

libs/application/templates/official-journal-of-iceland/src/fields/Comments.tsx (1)

73-73: Approve the simplified comment passing, but verify CommentsList compatibility.

The simplification of passing comments directly to the CommentsList component improves code readability and potentially enhances performance by removing unnecessary data transformation. This change aligns well with the principle of reusability in our coding guidelines.

However, to ensure the change doesn't introduce any issues:

  1. Verify that the CommentsList component can handle this new input format correctly.
  2. Check if any type definitions need to be updated in the CommentsList component or its props.
  3. Confirm that no critical data normalization or type checking has been lost with the removal of the previous transformation.

To verify the compatibility, please run the following script:

This script will help us understand the expected props for CommentsList and how it's used elsewhere in the project, ensuring our change is consistent with other usages.

libs/api/domains/official-journal-of-iceland-application/src/lib/ojoiApplication.resolver.ts (3)

Line range hint 1-138: Summary: Changes adhere to coding guidelines and improve readability.

The changes in this file are limited to renaming two GraphQL operation names, which improves readability without affecting core functionality. The file continues to adhere to the coding guidelines for libs/**/*:

  • It maintains reusability of components across different NextJS apps.
  • TypeScript is used effectively for defining types and exporting them.
  • The changes don't introduce any issues with tree-shaking or bundling practices.

Overall, the modifications are positive and align with the project's coding standards.


39-39: LGTM, but verify impact on existing queries.

The change to a more concise GraphQL operation name (OJOIAGetComments) is good for readability. However, ensure that this change doesn't break any existing queries in the frontend or other services that might be using the old operation name.

To verify the impact, run the following script:

#!/bin/bash
# Search for usage of the old operation name in the codebase
rg "officialJournalOfIcelandApplicationGetComments" --type ts --type tsx

If the script returns any results, those occurrences should be updated to use the new operation name.


49-49: LGTM, but verify impact on existing queries.

The change to a more concise GraphQL operation name (OJOIAPostComment) is good for readability and consistent with the previous change. However, ensure that this change doesn't break any existing mutations in the frontend or other services that might be using the old operation name.

To verify the impact, run the following script:

If the script returns any results, those occurrences should be updated to use the new operation name.

✅ Verification successful

To address the error with the previous script, please use the updated script below to search for the old operation name in both .ts and .tsx files:


Verified: No usages of the old operation name (officialJournalOfIcelandApplicationPostComment) were found in the codebase. The change to OJOIAPostComment does not impact existing queries.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Search for usage of the old operation name in the codebase
rg "officialJournalOfIcelandApplicationPostComment" --type ts --type tsx

Length of output: 100


Script:

#!/bin/bash
# Search for usage of the old operation name in .ts and .tsx files
rg "officialJournalOfIcelandApplicationPostComment" -g "*.ts" -g "*.tsx"

Length of output: 72

libs/application/templates/official-journal-of-iceland/src/lib/utils.ts (1)

179-180: Improved consistency in styling

The change to set a fixed margin-bottom: 0; for the aboveMarkup paragraph improves consistency in styling across different uses of this component. This aligns well with the principle of reusability for components across different NextJS apps.

libs/clients/official-journal-of-iceland/application/src/clientConfig.json (3)

Line range hint 759-813: Significant changes to CaseComment schema require careful review

The CaseComment schema has undergone substantial changes:

  1. New properties added: age, ageIso, direction, creator, receiver.
  2. Removed properties: type, status, task.
  3. All new properties are required.

These changes provide more detailed information about each comment but might affect existing code that relies on the old structure.

To ensure these changes don't break existing functionality, please run the following script:

#!/bin/bash
# Search for places where CaseComment is used
rg -t typescript -t javascript "CaseComment" -A 10 -B 10

Review the results to confirm that:

  1. All occurrences of CaseComment usage are updated to include the new required fields.
  2. Any code relying on the removed properties (type, status, task) is updated or removed.
  3. The new direction property is properly handled where comments are processed.

436-440: Verify the impact of the new required field involvedPartyId

The ApplicationAdvert schema now includes a new required field involvedPartyId. This change might affect existing code that creates or updates adverts.

To ensure this change doesn't break existing functionality, please run the following script:

Review the results to confirm that all occurrences of ApplicationAdvert usage include the new involvedPartyId field.

Also applies to: 481-481

✅ Verification successful

Verification Successful: No instances of ApplicationAdvert are currently used in the codebase. The new required field involvedPartyId does not affect existing functionality.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Search for places where ApplicationAdvert is used
rg -t typescript -t javascript "ApplicationAdvert" -A 10 -B 10

Length of output: 246


Script:

#!/bin/bash
# Search for places where ApplicationAdvert is used in TypeScript and JavaScript files
rg -t ts -t js "ApplicationAdvert" -A 10 -B 10

Length of output: 46


743-752: Verify the impact of CaseCommentType schema change

The CaseCommentType schema has been changed from an object to a string enum. This simplifies the structure but might affect existing code that expects CaseCommentType to be an object.

To ensure this change doesn't break existing functionality, please run the following script:

Review the results to confirm that all occurrences of CaseCommentType usage are updated to work with the new enum structure.

✅ Verification successful

CaseCommentType schema change verified successfully

The search did not find any usages of CaseCommentType in the codebase. The change from an object to a string enum does not impact existing functionality.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Search for places where CaseCommentType is used
rg -t typescript -t javascript "CaseCommentType" -A 5 -B 5

Length of output: 246


Script:

#!/bin/bash
# Search for places where CaseCommentType is used
rg -t js -t ts "CaseCommentType" -A 5 -B 5

Length of output: 42

libs/application/templates/official-journal-of-iceland/src/components/comments/Comment.tsx (1)

22-33: LGTM

The icon rendering logic based on the direction prop is clear and correctly implemented.

libs/application/templates/official-journal-of-iceland/src/graphql/queries.ts (1)

300-301: Verify Mutation Alignment with Server-Side Schema

The POST_COMMENT_MUTATION now uses OJOIAPostCommentInput! and calls the OJOIAPostComment mutation. Ensure that the server-side GraphQL schema has been updated accordingly to handle this new input type and mutation name to prevent any mismatches between the client and server.

Run the following script to confirm the server-side schema includes the OJOIAPostComment mutation:

@jonbjarnio jonbjarnio added the automerge Merge this PR as soon as all checks pass label Oct 18, 2024
Copy link
Contributor

@coderabbitai coderabbitai bot left a 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

🧹 Outside diff range and nitpick comments (4)
apps/web/screens/OfficialJournalOfIceland/OJOISearch.tsx (4)

80-80: LGTM: Improved state management

The introduction of defaultSearchParams and the consolidation of search state into a single searchState object simplify state management and improve the component's flexibility. The separate localSearchValue state allows for a responsive search input while maintaining debounced search functionality.

Consider using the useReducer hook for managing the searchState object, as it might provide cleaner state updates for complex objects.

Also applies to: 98-132


134-193: LGTM: Centralized search state update logic

The updateSearchStateHandler function effectively centralizes the logic for updating search parameters, ensuring consistency across the component. The use of useCallback is a good practice for optimizing performance.

Consider extracting the URL update logic into a separate function to improve the single responsibility principle of this function.


286-294: LGTM: Improved input handling and reset functionality

The use of defaultValue instead of value for controlled inputs, along with the resetTimestamp, provides better control over input states and ensures proper re-rendering when filters are reset. This approach improves the overall user experience when interacting with filters.

Consider using the key prop with a unique identifier for each input component instead of concatenating with resetTimestamp. This approach is more idiomatic in React and achieves the same result.

Also applies to: 313-329, 333-346, 350-367, 371-386, 390-405, 409-426


Line range hint 518-689: LGTM: Improved query parameter handling

The updated getProps method now handles a wider range of query parameters and performs additional validation, ensuring that the component receives well-formatted default search parameters. This enhancement improves the overall reliability of the search functionality.

Consider extracting the query parameter parsing logic into a separate utility function to improve readability and maintainability of the getProps method.

📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL

📥 Commits

Files that changed from the base of the PR and between 8e24e3a and 63a3e2d.

📒 Files selected for processing (2)
  • apps/web/screens/OfficialJournalOfIceland/OJOISearch.tsx (15 hunks)
  • apps/web/screens/OfficialJournalOfIceland/hooks/useAdverts.ts (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • apps/web/screens/OfficialJournalOfIceland/hooks/useAdverts.ts
🧰 Additional context used
📓 Path-based instructions (1)
apps/web/screens/OfficialJournalOfIceland/OJOISearch.tsx (1)

Pattern apps/**/*: "Confirm that the code adheres to the following:

  • NextJS best practices, including file structure, API routes, and static generation methods.
  • Efficient state management and server-side rendering techniques.
  • Optimal use of TypeScript for component and utility type safety."
🔇 Additional comments (4)
apps/web/screens/OfficialJournalOfIceland/OJOISearch.tsx (4)

1-1: LGTM: Improved imports and type safety

The addition of useCallback, useMemo, and SkeletonLoader imports suggests performance optimizations and better loading state handling. The new OJOISearchParams type enhances type safety for search parameters. These changes are positive improvements to the codebase.

Also applies to: 14-14, 60-60, 63-73


195-226: LGTM: Comprehensive filter reset

The updated resetFilter function provides a thorough reset of all search parameters, including updating the URL and triggering a new search with empty parameters. This improvement enhances the user experience when clearing filters.


433-449: LGTM: Enhanced error handling and loading state

The addition of the AlertMessage component for error handling and the SkeletonLoader for the loading state significantly improves the user experience. These changes provide clear feedback during different application states and enhance the perceived performance of the search functionality.


264-265: ⚠️ Potential issue

Remove debugging console.log statements

These console.log statements appear to be leftover from debugging and should be removed before merging to production.

Apply this diff to remove the console.log statements:

- console.log(defaultSearchParams)
- console.log('defaultdepartment', defaultDepartment)

Likely invalid or redundant comment.

Copy link

codecov bot commented Oct 18, 2024

Codecov Report

Attention: Patch coverage is 8.72483% with 136 lines in your changes missing coverage. Please review.

Project coverage is 36.76%. Comparing base (75ba90b) to head (fefcbd7).
Report is 1 commits behind head on main.

Files with missing lines Patch % Lines
...eb/screens/OfficialJournalOfIceland/OJOISearch.tsx 0.00% 94 Missing ⚠️
...ficialJournalOfIceland/lib/advert-params.mapper.ts 0.00% 21 Missing ⚠️
...and-application/src/lib/ojoiApplication.service.ts 11.11% 8 Missing ⚠️
...reens/OfficialJournalOfIceland/hooks/useAdverts.ts 0.00% 5 Missing ⚠️
...-journal-of-iceland-application/src/lib/mappers.ts 25.00% 3 Missing ⚠️
...and-application/src/models/getComments.response.ts 78.57% 3 Missing ⚠️
...b/components/OfficialJournalOfIceland/OJOIUtils.ts 0.00% 2 Missing ⚠️
Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             main   #16475      +/-   ##
==========================================
- Coverage   36.78%   36.76%   -0.02%     
==========================================
  Files        6836     6838       +2     
  Lines      141559   141611      +52     
  Branches    40319    40345      +26     
==========================================
- Hits        52072    52070       -2     
- Misses      89487    89541      +54     
Flag Coverage Δ
api 3.37% <ø> (ø)
application-system-api 41.36% <48.14%> (-0.01%) ⬇️
application-template-api-modules 27.87% <ø> (ø)
application-ui-shell 21.37% <ø> (ø)
judicial-system-api 18.49% <ø> (ø)
judicial-system-backend 55.19% <ø> (ø)
judicial-system-formatters 79.27% <ø> (ø)
judicial-system-message 67.31% <ø> (ø)
judicial-system-message-handler 48.44% <ø> (ø)
judicial-system-scheduler 69.64% <ø> (ø)
judicial-system-types 46.65% <ø> (ø)
judicial-system-web 27.91% <ø> (ø)
web 1.81% <0.00%> (-0.01%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
.../web/screens/OfficialJournalOfIceland/OJOIHome.tsx 0.00% <ø> (ø)
...nd-application/src/lib/ojoiApplication.resolver.ts 56.52% <ø> (ø)
...celand-application/src/models/getComments.input.ts 75.00% <ø> (ø)
...celand-application/src/models/postComment.input.ts 80.00% <ø> (ø)
...b/components/OfficialJournalOfIceland/OJOIUtils.ts 0.00% <0.00%> (ø)
...-journal-of-iceland-application/src/lib/mappers.ts 15.15% <25.00%> (+1.35%) ⬆️
...and-application/src/models/getComments.response.ts 71.42% <78.57%> (+6.91%) ⬆️
...reens/OfficialJournalOfIceland/hooks/useAdverts.ts 0.00% <0.00%> (ø)
...and-application/src/lib/ojoiApplication.service.ts 20.00% <11.11%> (-0.52%) ⬇️
...ficialJournalOfIceland/lib/advert-params.mapper.ts 0.00% <0.00%> (ø)
... and 1 more

... and 2 files with indirect coverage changes


Continue to review full report in Codecov by Sentry.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 75ba90b...fefcbd7. Read the comment docs.

@datadog-island-is
Copy link

Datadog Report

All test runs 6b378a2 🔗

101 Total Test Services: 0 Failed, 98 Passed
🔻 Test Sessions change in coverage: 4 decreased, 1 increased (+0.2%), 195 no change

Test Services
This report shows up to 10 services
Service Name Failed Known Flaky New Flaky Passed Skipped Total Time Code Coverage Change Test Service View
air-discount-scheme-backend 0 0 0 81 0 29.17s N/A Link
air-discount-scheme-web 0 0 0 2 0 7.97s N/A Link
api 0 0 0 4 0 2.81s N/A Link
api-catalogue-services 0 0 0 23 0 11.59s N/A Link
api-domains-air-discount-scheme 0 0 0 6 0 16.88s N/A Link
api-domains-assets 0 0 0 3 0 11s N/A Link
api-domains-auth-admin 0 0 0 18 0 12.04s N/A Link
api-domains-communications 0 0 0 5 0 29.9s N/A Link
api-domains-criminal-record 0 0 0 5 0 10.03s N/A Link
api-domains-driving-license 0 0 0 23 0 28.1s N/A Link

🔻 Code Coverage Decreases vs Default Branch (4)

  • message-queue - jest 68.26% (-0.9%) - Details
  • services-auth-delegation-api - jest 51.22% (-0.19%) - Details
  • services-university-gateway - jest 44.84% (-0.04%) - Details
  • web - jest 2.51% (-0.01%) - Details

@kodiakhq kodiakhq bot merged commit 7b1b400 into main Oct 18, 2024
50 checks passed
@kodiakhq kodiakhq bot deleted the fix/ojoi-comments-and-web-search branch October 18, 2024 19:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
automerge Merge this PR as soon as all checks pass
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants