Code AI platform with Code Search & Cody
Go to file
Felix Kling d2b6ffa2b3
feat(svelte): Improve small screeen behavior (#63859)
Closes srch-730

This is an initial attempt to improve the web app for small screens.
This commit makes the following changes for small screens:

- Search home page:
  - No more search input overflow
- History button is rendered on same line as other action buttons (saves
some vertical space)
- Search results page:
  - Search input is rendered in the page, not in the header (more space)
- Filters sidebar is hidden by default and can be shown via a `Filters`
button.
  - The filters sidebar opens fullscreen and has a close button
  - The progrss button is smaller due to showing less information
- Repository pages:
- File sidebar is hidden by default. It can be shown via a new button
that is visible in the file headers
  - The file sidebar opens fullscreen and has a close button
- NOTE: Selecting a file currently does not close the file sidebar,
navigation happens in the background
  - Cody sidebar opens fullscreen and has the same close button
- General:
  - Fuzzy finder opens fullscreen and has a larger close button
  - Tabs don't show keyboard shortcuts

I tried to stick to CSS as much as possible but for some things to work
I had to change component structures or rendered elements conditionally.
Specifically when a component was already using `$isViewportMobile` I
usually just rendered elements conditionally.

I extended the `Panel` component to have a special 'mobile' mode, since
I realized I was doing similar changes to the filters, file tree and
cody sidebar.
The cody sidebar is a bit of a special case though because it's not even
rendered by default. So there are some additional steps required to sync
the open state.

Screenshots (iPhone SE, which is one of the smaller phones I guess)

| Situation | Before | After |
|--------|--------|--------|
| Search home |
![2024-07-16_19-13](https://github.com/user-attachments/assets/0072a7b5-07dd-4e2e-bd20-5dd2db53b17d)
|
![2024-07-16_19-16_2](https://github.com/user-attachments/assets/4e9d8af3-e160-4a76-b1e0-158b47520dc9)
|
| Search results |
![2024-07-16_19-14](https://github.com/user-attachments/assets/7555747d-38b4-4db1-a53f-10d6308933b4)
|
![2024-07-16_19-17](https://github.com/user-attachments/assets/6b18db5e-0479-4daa-9342-e88d91a84dbc)
|
| Filters |
![2024-07-16_19-14](https://github.com/user-attachments/assets/7555747d-38b4-4db1-a53f-10d6308933b4)
|
![2024-07-16_19-17_1](https://github.com/user-attachments/assets/c33b5f7e-9723-412c-b682-2806c6e5d3da)
|
| Repo |
![2024-07-16_19-15_1](https://github.com/user-attachments/assets/c90af0ae-8b4e-4c2d-a153-f2bd149a83e5)
|
![2024-07-16_19-17_3](https://github.com/user-attachments/assets/554002c5-8759-4aeb-bcfe-578c339c13de)
|
| File sidebar |
![2024-07-16_19-15_1](https://github.com/user-attachments/assets/c90af0ae-8b4e-4c2d-a153-f2bd149a83e5)
|
![2024-07-16_19-17_4](https://github.com/user-attachments/assets/8baf73f9-0455-4e73-9d7c-032df461871d)
|
| Cody sidebar |
![2024-07-16_19-15_2](https://github.com/user-attachments/assets/8db143bd-ec77-4d4b-8572-23393d056805)
|
![2024-07-16_19-18](https://github.com/user-attachments/assets/b34f8470-1a4d-4682-afb9-5af7ef474191)
|
| Repo search |
![2024-07-16_19-16_1](https://github.com/user-attachments/assets/401fd0b6-8f8f-4b6d-bfcd-99510ee30151)
|
![2024-07-16_19-17_5](https://github.com/user-attachments/assets/57a95fb0-93de-40fa-b5c1-ce3be4a64f6b)
|
| Fuzzy finder |
![2024-07-16_19-16](https://github.com/user-attachments/assets/66a55a9f-95eb-4b7a-b102-67508334ba81)
|
![2024-07-16_19-18_1](https://github.com/user-attachments/assets/9c2859a4-33f4-40af-8028-3e0c6953a579)
|
| Rev picker |
![2024-07-17_00-42](https://github.com/user-attachments/assets/bdc0c993-592f-4975-950b-3b7a13edc810)
|
![2024-07-17_00-41](https://github.com/user-attachments/assets/4f42e7e5-387a-40dc-80aa-109481f0399c)
|

Me rambling about the changes:



https://github.com/user-attachments/assets/670f7764-0ef2-4f1b-bc33-89a86d4b2274


Note that the commits and commit pages already seem to look fine. The
branches, tags and contributors pages are a bit broken due to use of
tables and fixed columns. I can look at those separately.

## Test plan

Manual testing
2024-07-17 16:11:10 +02:00
.apko Build images end-to-end using Bazel v2 (#61845) 2024-04-12 16:18:43 +01:00
.aspect update config for workflows 5.10 (#63554) 2024-07-01 14:35:41 +02:00
.buildkite chore(ci): remove Percy visual tests (#63515) 2024-06-27 16:20:06 +02:00
.github pr-auditor: use pr-auditor from devx-service (#63847) 2024-07-16 11:10:36 +02:00
.vscode feat(search): Make search aware of perforce changelist id mapping (#63563) 2024-07-09 14:01:05 -04:00
client feat(svelte): Improve small screeen behavior (#63859) 2024-07-17 16:11:10 +02:00
cmd Add configuration for Intent Detection API (#63871) 2024-07-17 09:47:08 +00:00
dev feat/sg: support correct completions on 'sg start -cmd' (#63861) 2024-07-16 12:11:11 -07:00
doc chore/sg: remove 'sg telemetry' and related docs (#63763) 2024-07-10 17:25:04 -07:00
docker-images chore/otel-collector: upgrade to v0.103.0, remove jaegerexporter (#63171) 2024-07-10 09:01:41 -07:00
internal Add configuration for Intent Detection API (#63871) 2024-07-17 09:47:08 +00:00
lib chore/lib/telemetrygateway: fixup Dial helper (#63862) 2024-07-16 20:38:53 +00:00
migrations various improvements to saved searches (#63539) 2024-07-15 20:12:34 +00:00
monitoring feat/lib/telemetrygateway: expose simple Dial (#63810) 2024-07-15 10:45:10 -07:00
schema Add configuration for Intent Detection API (#63871) 2024-07-17 09:47:08 +00:00
testing feat/bazel: //cmd/{frontend,server} targets that don't include client bundle for backend integration tests (#62877) 2024-05-28 14:32:48 +01:00
third_party enterprise-portal: implement basic MSP IAM and RPCs (#63173) 2024-06-19 21:46:48 -04:00
third-party-licenses Chore: remove gorilla/schema (#63738) 2024-07-10 15:36:37 +00:00
tools Chore(release): Calendar Updates (#63583) 2024-07-02 10:42:12 -04:00
ui/assets feat/bazel: //cmd/{frontend,server} targets that don't include client bundle for backend integration tests (#62877) 2024-05-28 14:32:48 +01:00
wolfi-images fix(build): update wolfi image lock for otel (#63755) 2024-07-10 10:23:11 -07:00
wolfi-packages chore/otel-collector: upgrade to v0.103.0, remove jaegerexporter (#63171) 2024-07-10 09:01:41 -07:00
.bazel_fix_commands.json SG Start Bazel Improvements Take 2 (#60687) 2024-03-05 01:44:21 -08:00
.bazelignore Convert Appliance Maintenance UI to Bazel (#63661) 2024-07-10 13:47:18 +02:00
.bazeliskrc chore: upgrade to Aspect CLI 5.8.19 (#59203) 2024-01-02 15:13:24 +01:00
.bazelrc feat(ci): Adds playwright tests for sveltekit to bazel (#62560) 2024-06-06 12:45:05 -06:00
.bazelversion chore(bazel): bump to 7.2.0 (#63226) 2024-06-12 13:25:18 +00:00
.dockerignore use esbuild for client/web builds (#57365) 2023-10-23 10:59:06 -07:00
.editorconfig proto: Add editorconfig to ident using two spaces (#57281) 2023-10-03 00:39:42 +00:00
.eslintrc.js various improvements to saved searches (#63539) 2024-07-15 20:12:34 +00:00
.gitattributes dev/linearhooks: add POC (#62367) 2024-05-07 00:14:05 -07:00
.gitignore chore(ci): emit compact executon log in CI (#63420) 2024-06-21 19:50:35 +01:00
.graphqlrc.yml
.hadolint.yaml bump comby version to 1.7.1 (#35830) 2022-05-20 20:12:01 -07:00
.mailmap mailmap: add entries for Eric and Renovate (#50966) 2023-04-25 09:42:22 +02:00
.mocharc.js reapply "switch from jest to vitest for faster, simpler tests (#57886)" (#58145) 2023-11-07 12:00:18 +02:00
.npmrc pnpm: remove update notifier message (#51630) 2023-05-10 08:53:39 +02:00
.pre-commit-config.yaml chore(local): add FORBIDCOMMIT pragma to prevent accidental commits (#63581) 2024-07-01 18:27:26 +00:00
.prettierignore feat/dotcom: use Enterprise Portal for Cody Gateway usage (#63653) 2024-07-10 19:22:08 +00:00
.stylelintignore rework plugin structure and implement frontside blogpost (#46883) 2023-02-15 11:49:51 +02:00
.stylelintrc.json web: drop bootstrap depenedency (#41401) 2022-09-07 03:11:26 -07:00
.swcrc use swc instead of babel for faster bazel typescript transpilation (#57912) 2023-11-02 22:49:03 -07:00
.tool-versions chore(tooling): bump Go version to 1.22.4 (#63124) 2024-06-06 15:19:03 +00:00
.trivyignore
BUILD.bazel symbols: Make symbols specific code internal (#63736) 2024-07-10 01:26:22 +02:00
CHANGELOG.md chore: add changelog entry for Batch Changes <> GitHub apps integration (#63756) 2024-07-10 16:26:01 +00:00
CODENOTIFY nix: update pnpm hash (#51512) 2023-05-05 12:51:59 +00:00
CONTRIBUTING.md fix: update links for dev docs (#62758) 2024-05-17 13:47:34 +02:00
deps.bzl chore(appliance): Stub out react UI expected URIs and JSON API (#63741) 2024-07-15 14:48:38 -04:00
doc.go
eslint-relative-formatter.js bazel: implement custom ESLint Bazel rule (#52062) 2023-05-22 04:05:45 -07:00
flake.lock nix: bump to bazel 7.1 (#61326) 2024-03-22 16:57:50 +00:00
flake.nix nix: use go1.22.4 (#63372) 2024-06-20 11:12:17 +02:00
gen.go chore: fixup go-mockgen run statement (#61028) 2024-03-12 13:06:36 +00:00
go.mod chore(appliance): Stub out react UI expected URIs and JSON API (#63741) 2024-07-15 14:48:38 -04:00
go.sum chore(appliance): Stub out react UI expected URIs and JSON API (#63741) 2024-07-15 14:48:38 -04:00
graphql-schema-linter.config.js
LICENSE relicense all paths other than MIT licensed code, client/cody*, jetbrains, VS code, and browser extension to enterprise (#53345) (#53345) 2023-06-13 10:28:11 -07:00
LICENSE.enterprise Update Enterprise license copyright notice (#62467) 2024-05-06 17:35:32 +00:00
linter_deps.bzl chore: Remove redundant loop captures (#62264) 2024-04-30 07:57:21 -06:00
mockgen.temp.yaml Correctly re-map source ranges in new SCIP-based APIs (#63630) 2024-07-11 06:55:46 +00:00
mockgen.test.yaml feat(appliance): self-update (#63780) 2024-07-11 17:59:39 +01:00
mockgen.yaml bazel: native go-mockgen in Bazel (#60386) 2024-02-16 13:26:48 +00:00
nogo_config.json chore: Remove redundant loop captures (#62264) 2024-04-30 07:57:21 -06:00
package.json Upgrade cody web experimental package to 0.2.7 (#63863) 2024-07-16 18:43:53 -03:00
pnpm-lock.yaml Upgrade cody web experimental package to 0.2.7 (#63863) 2024-07-16 18:43:53 -03:00
pnpm-workspace.yaml Convert Appliance Maintenance UI to Bazel (#63661) 2024-07-10 13:47:18 +02:00
postcss.config.js
prettier.config.js clean up Cody CSS to increase shareability and improve display in web app (#50279) 2023-04-03 12:29:05 -07:00
README.md chore: remove broken link in README (#63256) 2024-06-13 22:22:56 +00:00
release.yaml feat(ci): Trigger security scanner from release pipeline (#63280) 2024-06-19 19:16:36 +00:00
renovate.json chore(ci): disable renovate (#63313) 2024-06-19 13:17:15 +02:00
SECURITY.md
service-catalog.yaml lib/servicecatalog: init to distribute catalog (#46999) 2023-01-26 17:22:27 -08:00
sg.config.yaml chore/otel-collector: upgrade to v0.103.0, remove jaegerexporter (#63171) 2024-07-10 09:01:41 -07:00
shell.nix bazel: use pgutil binaries from GCS instead of from the host (#61741) 2024-04-11 18:00:21 +01:00
stamp_tags.bzl Switch to OCI/Wolfi based image (#52693) 2023-06-02 12:12:52 +02:00
tsconfig.base.json web: fix pnpm-lock issue (#47478) 2023-02-09 22:04:31 -08:00
tsconfig.json release: drop legacy release tooling (#61220) 2024-04-09 14:29:35 -05:00
vitest.shared.ts make pagination hooks store filter & query params in URL, not just pagination params (#63744) 2024-07-15 19:17:59 +00:00
vitest.workspace.ts vitest: Fix workspace config wrt client/web/ (#58397) 2023-11-17 08:22:46 +00:00
WORKSPACE release/bug: generate a new stitched migration graph (#63764) 2024-07-10 14:49:18 -07:00

DocsContributingTwitterDiscord

Build status Scorecard Latest release Discord Contributors


Sourcegraph makes it easy to read, write, and fix code—even in big, complex codebases.

  • Code search: Search all of your repositories across all branches and all code hosts.
  • Code intelligence: Navigate code, find references, see code owners, trace history, and more.
  • Fix and refactor: Roll out large-scale changes to many repositories at once and track big migrations.

Getting started



Development

Refer to the Developing Sourcegraph guide to get started.

Documentation

The doc directory has additional documentation for developing and understanding Sourcegraph:

License

This repository contains primarily non-OSS-licensed files. See LICENSE.

Copyright (c) 2018-present Sourcegraph Inc.