Skip to content

feat: Login on web#7360

Open
yash-rajpal wants to merge 4 commits into
developfrom
login-on-web
Open

feat: Login on web#7360
yash-rajpal wants to merge 4 commits into
developfrom
login-on-web

Conversation

@yash-rajpal
Copy link
Copy Markdown
Member

@yash-rajpal yash-rajpal commented May 29, 2026

Proposed changes

Hides the required login services buttons and shows new login on web button based on server response.

Requires - Rocket.Chat/Rocket.Chat#40733

Issue(s)

How to test or reproduce

Screenshots

Uncollapsed with Login on web

image

Collapsed

image

Types of changes

  • Bugfix (non-breaking change which fixes an issue)
  • Improvement (non-breaking change which improves a current function)
  • New feature (non-breaking change which adds functionality)
  • Documentation update (if none of the other choices apply)

Checklist

  • I have read the CONTRIBUTING doc
  • I have signed the CLA
  • Lint and unit tests pass locally with my changes
  • I have added tests that prove my fix is effective or that my feature works (if applicable)
  • I have added necessary documentation (if applicable)
  • Any dependent changes have been merged and published in downstream modules

Further comments

PRM-48

Summary by CodeRabbit

  • New Features

    • Added a localized "Login on web" action in the login UI and Storybook previews.
  • Updates

    • Mobile login now omits services marked to hide on mobile and shows a compact/collapsed service list.
    • Collapsed layout and animations adjusted to include the optional "Login on web" button when applicable.
  • Localization

    • "Login on web" text added across all supported locales.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 29, 2026

Review Change Stack

Note

Currently processing new changes in this PR. This may take a few minutes, please wait...

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 2ee3ba9e-b342-4826-bbeb-971716675ad2

📥 Commits

Reviewing files that changed from the base of the PR and between b9ca933 and 3f1ad23.

📒 Files selected for processing (1)
  • app/containers/LoginServices/index.tsx

Walkthrough

Filters services that opt out of mobile buttons, introduces a reusable ServiceList that can render an optional “Login on web” button (opens server web login via Linking), wires filtered services and layout changes into LoginServices, adds Storybook stories, and updates locale keys for the new label.

Changes

Mobile Login on Web Feature

Layer / File(s) Summary
Service interface contract
app/containers/LoginServices/interfaces.ts
IItemService gains an optional hideButtonOnMobile boolean property to control whether a service button displays on mobile.
ServiceList component implementation
app/containers/LoginServices/ServiceList.tsx
New ServiceList component accepts showLoginOnWebButton, conditionally renders service items when collapsed, and shows a "Login on web" button that calls Linking.openURL(\${server}/home?loginClient=mobile`)`.
LoginServices filtering and wiring
app/containers/LoginServices/index.tsx
Replaces inline list with imported ServiceList, filters allServices by hideButtonOnMobile to produce filteredServices, computes enableLoginOnWebButton, adjusts collapsed height to include an extra row when enabled, logs derived values, and passes filteredServices and showLoginOnWebButton to children.
Storybook stories for ServiceList
app/containers/LoginServices/LoginServices.stories.tsx
Adds ServiceListTest import and two stories (ServciceListCollapsed, ServciceListUncollapsed) demonstrating collapsed vs. uncollapsed rendering.
Add Login_on_web translations
app/i18n/locales/*
Adds the Login_on_web localization key to many locale JSON files to support the new web-login label across languages.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Suggested reviewers

  • diegolmello
  • OtavioStasiak
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'feat: Login on web' directly and clearly describes the main feature being added across the entire changeset—a new login-on-web button functionality with supporting components, interfaces, translations, and stories.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

Warning

Review ran into problems

🔥 Problems

Errors were encountered while retrieving linked issues.

Errors (1)
  • PRM-48: Request failed with status code 401

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
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: 1

🧹 Nitpick comments (1)
app/containers/LoginServices/index.tsx (1)

63-63: ⚡ Quick win

Simplify the boolean check.

The === true comparison is redundant when the result is already wrapped in Boolean(). The find() method returns either a truthy value (the service object) or undefined, so the explicit comparison adds no value.

♻️ Proposed simplification
-const showLoginOnWeb = Boolean(Object.values(services).find((service: IItemService) => service.hideButtonOnMobile === true));
+const showLoginOnWeb = Boolean(Object.values(services).find((service: IItemService) => service.hideButtonOnMobile));
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@app/containers/LoginServices/index.tsx` at line 63, The boolean expression
for showLoginOnWeb is overcomplicated: remove the redundant "=== true" and
simplify the check by using the truthiness of the found service (e.g., use
Object.values(services).find(...) directly wrapped with Boolean or use
.some(...)) so that the expression references services, IItemService, and
hideButtonOnMobile and relies on find()/some() returning a truthy value instead
of comparing to true.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@app/containers/LoginServices/index.tsx`:
- Around line 39-46: The call to Linking.openURL inside the conditional render
(when showLoginOnWeb is true) is unhandled and may reject; update the Button
onPress handler in LoginServices so
Linking.openURL(`${server}/home?loginClient=mobile`) is explicitly handled with
a Promise rejection handler (e.g., .catch(err => /* log or show error */)) to
satisfy ESLint's no-void rule and avoid unhandled rejections; keep the same
URL/template and ensure the catch logs or surfaces the error (using the app
logger or console) rather than leaving the promise unhandled.

---

Nitpick comments:
In `@app/containers/LoginServices/index.tsx`:
- Line 63: The boolean expression for showLoginOnWeb is overcomplicated: remove
the redundant "=== true" and simplify the check by using the truthiness of the
found service (e.g., use Object.values(services).find(...) directly wrapped with
Boolean or use .some(...)) so that the expression references services,
IItemService, and hideButtonOnMobile and relies on find()/some() returning a
truthy value instead of comparing to true.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: c0aeed82-c575-4ea4-992d-1366f08eb79f

📥 Commits

Reviewing files that changed from the base of the PR and between 815ff6c and 3487134.

📒 Files selected for processing (3)
  • app/containers/LoginServices/index.tsx
  • app/containers/LoginServices/interfaces.ts
  • app/i18n/locales/en.json
📜 Review details
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: ESLint and Test / run-eslint-and-test
🧰 Additional context used
📓 Path-based instructions (4)
**/*.{js,ts,jsx,tsx}

📄 CodeRabbit inference engine (AGENTS.md)

**/*.{js,ts,jsx,tsx}: Use descriptive names for functions, variables, and classes that clearly convey their purpose
Write comments that explain the 'why' behind code decisions, not the 'what'
Keep functions small and focused on a single responsibility
Use const by default, let when reassignment is needed, and avoid var
Prefer async/await over .then() chains for handling asynchronous operations
Use explicit error handling with try/catch blocks for async operations
Avoid deeply nested code; refactor complex logic into helper functions

Files:

  • app/containers/LoginServices/interfaces.ts
  • app/containers/LoginServices/index.tsx
**/*.{ts,tsx}

📄 CodeRabbit inference engine (AGENTS.md)

**/*.{ts,tsx}: Use TypeScript for type safety; add explicit type annotations to function parameters and return types
Prefer interfaces over type aliases for defining object shapes in TypeScript
Use enums for sets of related constants rather than magic strings or numbers

Use TypeScript with strict mode and baseUrl set to app/ for import resolution

Files:

  • app/containers/LoginServices/interfaces.ts
  • app/containers/LoginServices/index.tsx
**/*.{ts,tsx,js,jsx}

📄 CodeRabbit inference engine (CLAUDE.md)

**/*.{ts,tsx,js,jsx}: Use Prettier with tabs, single quotes, 130 char width, no trailing commas, arrow parens avoid, bracket same line
Use @rocket.chat/eslint-config base with React, React Native, TypeScript, Jest plugins

Files:

  • app/containers/LoginServices/interfaces.ts
  • app/containers/LoginServices/index.tsx
app/containers/**/*.{ts,tsx}

📄 CodeRabbit inference engine (CLAUDE.md)

Reusable UI components should be placed in app/containers/ directory

Files:

  • app/containers/LoginServices/interfaces.ts
  • app/containers/LoginServices/index.tsx
🧠 Learnings (1)
📚 Learning: 2026-04-30T17:07:51.020Z
Learnt from: diegolmello
Repo: RocketChat/Rocket.Chat.ReactNative PR: 7274
File: app/lib/services/voip/MediaCallEvents.ts:0-0
Timestamp: 2026-04-30T17:07:51.020Z
Learning: In this Rocket.Chat React Native codebase, the ESLint rule `no-void: error` is enforced. When you see a promise returned from an async call that is not awaited (a “floating promise”), do not silence it with the `void somePromise()` pattern. Instead, handle the promise explicitly by attaching `.catch(...)` (or otherwise awaiting/handling the error) so unhandled-rejection risks are addressed in a way that satisfies the existing ESLint configuration.

Applied to files:

  • app/containers/LoginServices/interfaces.ts
  • app/containers/LoginServices/index.tsx
🔇 Additional comments (6)
app/containers/LoginServices/interfaces.ts (1)

27-27: LGTM!

app/containers/LoginServices/index.tsx (4)

64-67: LGTM!


77-77: LGTM!


86-92: LGTM!


107-113: LGTM!

app/i18n/locales/en.json (1)

517-517: LGTM!

Comment thread app/containers/LoginServices/index.tsx Outdated
Comment thread app/containers/LoginServices/index.tsx Outdated
Comment thread app/containers/LoginServices/index.tsx Outdated
Comment thread app/containers/LoginServices/index.tsx Outdated
Comment thread app/i18n/locales/en.json
Copy link
Copy Markdown
Member

@diegolmello diegolmello left a comment

Choose a reason for hiding this comment

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

Also missing stories and tests

@yash-rajpal yash-rajpal requested a deployment to approve_e2e_testing June 1, 2026 15:58 — with GitHub Actions Waiting
Copy link
Copy Markdown
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: 3

♻️ Duplicate comments (1)
app/containers/LoginServices/ServiceList.tsx (1)

39-39: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Add error handling for Linking.openURL.

Linking.openURL returns a Promise that can reject if the URL cannot be opened. The unhandled rejection could cause runtime errors. Based on learnings, you must handle the promise explicitly with .catch(...) to satisfy ESLint's no-void: error rule.

🛡️ Proposed fix to add error handling
 onPress={() => {
-	Linking.openURL(`${server}/home?loginClient=mobile`);
+	Linking.openURL(`${server}/home?loginClient=mobile`).catch(err => {
+		console.error('Failed to open login URL:', err);
+	});
 }}
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@app/containers/LoginServices/ServiceList.tsx` at line 39,
Linking.openURL(`${server}/home?loginClient=mobile`) can reject and currently
has no error handling; update the call in ServiceList.tsx (the Linking.openURL
invocation) to handle the returned Promise by chaining a .catch(...) that logs
or reports the error (e.g., via console.error or the app's logger) so the
rejection is handled and satisfies ESLint no-void rule, and ensure any used
logger is imported or available in the component.
🧹 Nitpick comments (2)
app/containers/LoginServices/ServiceList.tsx (2)

17-17: ⚡ Quick win

Add explanatory comment for button visibility logic.

The condition (!collapsed || Object.keys(services).length <= 2) is not immediately clear. Consider adding a comment explaining why the button should be shown when there are 2 or fewer services, even when collapsed.

📝 Suggested improvement
+// Show button when expanded, or when collapsed but only 2 or fewer services are visible
 const enableLoginOnWebButton = showLoginOnWebButton && (!collapsed || Object.keys(services).length <= 2);
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@app/containers/LoginServices/ServiceList.tsx` at line 17, Add a short inline
comment above the enableLoginOnWebButton declaration explaining the visibility
rule: that showLoginOnWebButton gates overall visibility, but when the list is
collapsed the button is still shown if there are two or fewer services to ensure
access to limited service sets; reference the variables used
(enableLoginOnWebButton, showLoginOnWebButton, collapsed, services) and briefly
state why Object.keys(services).length <= 2 overrides the collapsed state.

8-16: ⚡ Quick win

Add explicit return type annotation.

The function lacks an explicit return type annotation. As per coding guidelines, TypeScript functions should have explicit return types for better type safety and documentation.

🔧 Proposed fix
-const ServiceList = ({
+const ServiceList = ({
 	services,
 	CAS_enabled,
 	CAS_login_url,
 	Gitlab_URL,
 	server,
 	collapsed,
 	showLoginOnWebButton
-}: IServiceList & { showLoginOnWebButton: boolean }) => {
+}: IServiceList & { showLoginOnWebButton: boolean }): React.ReactElement => {

As per coding guidelines: Use TypeScript for type safety; add explicit type annotations to function parameters and return types.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@app/containers/LoginServices/ServiceList.tsx` around lines 8 - 16, The
ServiceList component is missing an explicit return type; update its declaration
to include a TypeScript return annotation (e.g., use React.FC<IServiceList & {
showLoginOnWebButton: boolean }> or annotate the arrow function return as
JSX.Element) so ServiceList, its props type (IServiceList & {
showLoginOnWebButton: boolean }) and the returned JSX are explicitly typed;
locate the ServiceList declaration to apply the change.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@app/containers/LoginServices/index.tsx`:
- Line 7: Remove the unused import IItemService from the top of LoginServices
(the import statement "import { type IItemService } from './interfaces';" in
index.tsx) since it is never referenced; simply delete that named import so the
file only imports used symbols and rerun linting to confirm no remaining unused
imports.
- Around line 30-31: Remove the stray debug console.log statements that print
filteredServices, enableLoginOnWebButton, and allServices in the LoginServices
component; locate the lines that call console.log('filteredServices',
filteredServices, 'enableLoginOnWebButton', enableLoginOnWebButton) and
console.log('allServices', allServices) and delete them (or replace with a
proper logger call if persistent runtime logging is required), ensuring no debug
console output remains in index.tsx.

In `@app/containers/LoginServices/LoginServices.stories.tsx`:
- Line 99: Rename the two story functions that contain a typo: change
ServciceListCollapsed to ServiceListCollapsed and ServciceListUncollapsed to
ServiceListUncollapsed in the LoginServices.stories file; update any references
or exports that use the old names (e.g., the functions declared as
ServciceListCollapsed and ServciceListUncollapsed) so the identifiers and any
places importing/using them match the corrected spellings.

---

Duplicate comments:
In `@app/containers/LoginServices/ServiceList.tsx`:
- Line 39: Linking.openURL(`${server}/home?loginClient=mobile`) can reject and
currently has no error handling; update the call in ServiceList.tsx (the
Linking.openURL invocation) to handle the returned Promise by chaining a
.catch(...) that logs or reports the error (e.g., via console.error or the app's
logger) so the rejection is handled and satisfies ESLint no-void rule, and
ensure any used logger is imported or available in the component.

---

Nitpick comments:
In `@app/containers/LoginServices/ServiceList.tsx`:
- Line 17: Add a short inline comment above the enableLoginOnWebButton
declaration explaining the visibility rule: that showLoginOnWebButton gates
overall visibility, but when the list is collapsed the button is still shown if
there are two or fewer services to ensure access to limited service sets;
reference the variables used (enableLoginOnWebButton, showLoginOnWebButton,
collapsed, services) and briefly state why Object.keys(services).length <= 2
overrides the collapsed state.
- Around line 8-16: The ServiceList component is missing an explicit return
type; update its declaration to include a TypeScript return annotation (e.g.,
use React.FC<IServiceList & { showLoginOnWebButton: boolean }> or annotate the
arrow function return as JSX.Element) so ServiceList, its props type
(IServiceList & { showLoginOnWebButton: boolean }) and the returned JSX are
explicitly typed; locate the ServiceList declaration to apply the change.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 25adeb57-96dd-4b86-a322-fc1afb3f83cc

📥 Commits

Reviewing files that changed from the base of the PR and between 3487134 and b9ca933.

📒 Files selected for processing (27)
  • app/containers/LoginServices/LoginServices.stories.tsx
  • app/containers/LoginServices/ServiceList.tsx
  • app/containers/LoginServices/index.tsx
  • app/i18n/locales/ar.json
  • app/i18n/locales/bn-IN.json
  • app/i18n/locales/cs.json
  • app/i18n/locales/de.json
  • app/i18n/locales/es.json
  • app/i18n/locales/fi.json
  • app/i18n/locales/fr.json
  • app/i18n/locales/hi-IN.json
  • app/i18n/locales/hu.json
  • app/i18n/locales/it.json
  • app/i18n/locales/ja.json
  • app/i18n/locales/nl.json
  • app/i18n/locales/nn.json
  • app/i18n/locales/no.json
  • app/i18n/locales/pt-BR.json
  • app/i18n/locales/pt-PT.json
  • app/i18n/locales/ru.json
  • app/i18n/locales/sl-SI.json
  • app/i18n/locales/sv.json
  • app/i18n/locales/ta-IN.json
  • app/i18n/locales/te-IN.json
  • app/i18n/locales/tr.json
  • app/i18n/locales/zh-CN.json
  • app/i18n/locales/zh-TW.json
✅ Files skipped from review due to trivial changes (13)
  • app/i18n/locales/bn-IN.json
  • app/i18n/locales/es.json
  • app/i18n/locales/te-IN.json
  • app/i18n/locales/it.json
  • app/i18n/locales/hi-IN.json
  • app/i18n/locales/cs.json
  • app/i18n/locales/ta-IN.json
  • app/i18n/locales/sl-SI.json
  • app/i18n/locales/hu.json
  • app/i18n/locales/nl.json
  • app/i18n/locales/ar.json
  • app/i18n/locales/zh-CN.json
  • app/i18n/locales/tr.json
📜 Review details
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: format
🧰 Additional context used
📓 Path-based instructions (4)
**/*.{js,ts,jsx,tsx}

📄 CodeRabbit inference engine (AGENTS.md)

**/*.{js,ts,jsx,tsx}: Use descriptive names for functions, variables, and classes that clearly convey their purpose
Write comments that explain the 'why' behind code decisions, not the 'what'
Keep functions small and focused on a single responsibility
Use const by default, let when reassignment is needed, and avoid var
Prefer async/await over .then() chains for handling asynchronous operations
Use explicit error handling with try/catch blocks for async operations
Avoid deeply nested code; refactor complex logic into helper functions

Files:

  • app/containers/LoginServices/ServiceList.tsx
  • app/containers/LoginServices/LoginServices.stories.tsx
  • app/containers/LoginServices/index.tsx
**/*.{ts,tsx}

📄 CodeRabbit inference engine (AGENTS.md)

**/*.{ts,tsx}: Use TypeScript for type safety; add explicit type annotations to function parameters and return types
Prefer interfaces over type aliases for defining object shapes in TypeScript
Use enums for sets of related constants rather than magic strings or numbers

Use TypeScript with strict mode and baseUrl set to app/ for import resolution

Files:

  • app/containers/LoginServices/ServiceList.tsx
  • app/containers/LoginServices/LoginServices.stories.tsx
  • app/containers/LoginServices/index.tsx
**/*.{ts,tsx,js,jsx}

📄 CodeRabbit inference engine (CLAUDE.md)

**/*.{ts,tsx,js,jsx}: Use Prettier with tabs, single quotes, 130 char width, no trailing commas, arrow parens avoid, bracket same line
Use @rocket.chat/eslint-config base with React, React Native, TypeScript, Jest plugins

Files:

  • app/containers/LoginServices/ServiceList.tsx
  • app/containers/LoginServices/LoginServices.stories.tsx
  • app/containers/LoginServices/index.tsx
app/containers/**/*.{ts,tsx}

📄 CodeRabbit inference engine (CLAUDE.md)

Reusable UI components should be placed in app/containers/ directory

Files:

  • app/containers/LoginServices/ServiceList.tsx
  • app/containers/LoginServices/LoginServices.stories.tsx
  • app/containers/LoginServices/index.tsx
🧠 Learnings (2)
📚 Learning: 2026-04-30T17:07:51.020Z
Learnt from: diegolmello
Repo: RocketChat/Rocket.Chat.ReactNative PR: 7274
File: app/lib/services/voip/MediaCallEvents.ts:0-0
Timestamp: 2026-04-30T17:07:51.020Z
Learning: In this Rocket.Chat React Native codebase, the ESLint rule `no-void: error` is enforced. When you see a promise returned from an async call that is not awaited (a “floating promise”), do not silence it with the `void somePromise()` pattern. Instead, handle the promise explicitly by attaching `.catch(...)` (or otherwise awaiting/handling the error) so unhandled-rejection risks are addressed in a way that satisfies the existing ESLint configuration.

Applied to files:

  • app/containers/LoginServices/ServiceList.tsx
  • app/containers/LoginServices/LoginServices.stories.tsx
  • app/containers/LoginServices/index.tsx
📚 Learning: 2026-03-15T13:55:42.038Z
Learnt from: Rohit3523
Repo: RocketChat/Rocket.Chat.ReactNative PR: 6911
File: app/containers/markdown/Markdown.stories.tsx:104-104
Timestamp: 2026-03-15T13:55:42.038Z
Learning: In Rocket.Chat React Native, the markdown parser requires a space between the underscore wrapping italic text and a mention sigil (_ mention _ instead of _mention_). Ensure stories and tests that include italic-wrapped mentions follow this form to guarantee proper parsing. Specifically, for files like app/containers/markdown/Markdown.stories.tsx, and any test/content strings that exercise italic-mentions, use the pattern _ mention _ (with spaces) to prevent the mention from being treated as plain text. Validate any test strings or story content accordingly.

Applied to files:

  • app/containers/LoginServices/LoginServices.stories.tsx
🪛 ESLint
app/containers/LoginServices/index.tsx

[error] 7-7: 'IItemService' is defined but never used.

(@typescript-eslint/no-unused-vars)

🪛 GitHub Check: ESLint and Test / run-eslint-and-test
app/containers/LoginServices/index.tsx

[failure] 7-7:
'IItemService' is defined but never used

🔇 Additional comments (11)
app/i18n/locales/pt-PT.json (1)

321-321: LGTM!

app/i18n/locales/ru.json (1)

433-433: LGTM!

app/i18n/locales/sv.json (1)

442-442: LGTM!

app/i18n/locales/zh-TW.json (1)

356-356: LGTM!

app/i18n/locales/de.json (1)

462-462: LGTM!

app/i18n/locales/fi.json (1)

443-443: LGTM!

app/i18n/locales/fr.json (1)

408-408: LGTM!

app/i18n/locales/ja.json (1)

327-327: LGTM!

app/i18n/locales/nn.json (1)

254-254: LGTM!

app/i18n/locales/no.json (1)

496-496: LGTM!

app/i18n/locales/pt-BR.json (1)

512-512: LGTM!

Comment thread app/containers/LoginServices/index.tsx Outdated
Comment thread app/containers/LoginServices/index.tsx Outdated
</>
);

export const ServciceListCollapsed = () => {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Fix typo in story function names.

The function names contain a typo: ServciceListCollapsed and ServciceListUncollapsed should be ServiceListCollapsed and ServiceListUncollapsed.

✏️ Proposed fix
-export const ServciceListCollapsed = () => {
+export const ServiceListCollapsed = () => {
 	return (
 		<ServiceListTest
 			services={services}
 			CAS_enabled={false}
 			CAS_login_url=''
 			Gitlab_URL=''
 			server='https://demo.rocket.chat'
 			collapsed={true}
 			showLoginOnWebButton={true}
 		/>
 	);
 };

-export const ServciceListUncollapsed = () => {
+export const ServiceListUncollapsed = () => {
 	return (
 		<ServiceListTest
 			services={services}
 			CAS_enabled={false}
 			CAS_login_url=''
 			Gitlab_URL=''
 			server='https://demo.rocket.chat'
 			collapsed={false}
 			showLoginOnWebButton={true}
 		/>
 	);
 };

Also applies to: 113-113

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@app/containers/LoginServices/LoginServices.stories.tsx` at line 99, Rename
the two story functions that contain a typo: change ServciceListCollapsed to
ServiceListCollapsed and ServciceListUncollapsed to ServiceListUncollapsed in
the LoginServices.stories file; update any references or exports that use the
old names (e.g., the functions declared as ServciceListCollapsed and
ServciceListUncollapsed) so the identifiers and any places importing/using them
match the corrected spellings.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants