Skip to content

Commit 9b8a7c6

Browse files
authored
Merge pull request #3532 from quadratichq/qa
QA Oct 15th
2 parents 7ca4995 + 818b77f commit 9b8a7c6

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+575
-293
lines changed

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ edition = "2024"
1515
description = "Infinite data grid with Python, JavaScript, and SQL built-in"
1616
repository = "https://github.com/quadratichq/quadratic"
1717
license-file = "LICENSE"
18-
version = "0.20.3"
18+
version = "0.20.4"
1919

2020

2121
[profile.release]

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
0.20.3
1+
0.20.4

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "quadratic",
3-
"version": "0.20.3",
3+
"version": "0.20.4",
44
"author": {
55
"name": "David Kircos",
66
"email": "david@quadratichq.com",

quadratic-api/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "quadratic-api",
3-
"version": "0.20.3",
3+
"version": "0.20.4",
44
"description": "",
55
"main": "index.js",
66
"scripts": {

quadratic-client/.env.example

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
VITE_GOOGLE_ANALYTICS_GTAG=G-0000000000
2-
VITE_AMPLITUDE_ANALYTICS_API_KEY=
32
VITE_MIXPANEL_ANALYTICS_KEY=
43
VITE_SENTRY_DSN=https://xxxxxxxxxxxxxxxxxx@xxxxxxxxxxxx.ingest.sentry.io/xxxxxxxxxxxx
54
VITE_SENTRY_AUTH_TOKEN=

quadratic-client/package.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "quadratic-client",
3-
"version": "0.20.3",
3+
"version": "0.20.4",
44
"author": {
55
"name": "David Kircos",
66
"email": "david@quadratichq.com",
@@ -49,7 +49,6 @@
4949
"gen:proto": "npx protoc --ts_opt use_proto_field_name --ts_out=./src/app/web-workers/multiplayerWebWorker/proto -I=./../quadratic-rust-shared/src/protobuf/proto/transaction.proto ./../quadratic-rust-shared/src/protobuf/proto/transaction.proto/*.proto"
5050
},
5151
"dependencies": {
52-
"@amplitude/analytics-browser": "^2.12.1",
5352
"@emotion/react": "^11.7.0",
5453
"@emotion/styled": "^11.6.0",
5554
"@hookform/resolvers": "^4.1.3",
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
"version": "0.20.3"
2+
"version": "0.20.4"
33
}

quadratic-client/src/app/atoms/aiAnalystAtom.ts

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import type { z } from 'zod';
2020

2121
export interface AIAnalystState {
2222
showAIAnalyst: boolean;
23+
activeSchemaConnectionUuid: string | undefined;
2324
showChatHistory: boolean;
2425
abortController?: AbortController;
2526
loading: boolean;
@@ -46,6 +47,7 @@ export interface AIAnalystState {
4647

4748
export const defaultAIAnalystState: AIAnalystState = {
4849
showAIAnalyst: false,
50+
activeSchemaConnectionUuid: undefined,
4951
showChatHistory: false,
5052
abortController: undefined,
5153
loading: false,
@@ -150,9 +152,26 @@ const createSelector = <T extends keyof AIAnalystState>(key: T) =>
150152
}));
151153
},
152154
});
153-
export const showAIAnalystAtom = createSelector('showAIAnalyst');
154155
export const aiAnalystShowChatHistoryAtom = createSelector('showChatHistory');
155156
export const aiAnalystAbortControllerAtom = createSelector('abortController');
157+
export const aiAnalystActiveSchemaConnectionUuidAtom = createSelector('activeSchemaConnectionUuid');
158+
159+
export const showAIAnalystAtom = selector<boolean>({
160+
key: 'showAIAnalystAtom',
161+
get: ({ get }) => get(aiAnalystAtom).showAIAnalyst,
162+
set: ({ set, get }, newValue) => {
163+
const currentState = get(aiAnalystAtom);
164+
const isShowing = currentState.showAIAnalyst;
165+
const willShow = newValue instanceof DefaultValue ? currentState.showAIAnalyst : newValue;
166+
167+
set(aiAnalystAtom, (prev) => ({
168+
...prev,
169+
showAIAnalyst: newValue instanceof DefaultValue ? prev.showAIAnalyst : newValue,
170+
// Reset when hiding the AI Analyst
171+
activeSchemaConnectionUuid: isShowing && !willShow ? undefined : prev.activeSchemaConnectionUuid,
172+
}));
173+
},
174+
});
156175

157176
export const aiAnalystLoadingAtom = selector<boolean>({
158177
key: 'aiAnalystLoadingAtom',

quadratic-client/src/app/gridGL/UI/GridLines.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ export class GridLines extends Graphics {
103103
let size = 0;
104104
for (let x = bounds.left; x <= bounds.right + size - 1; x += size) {
105105
// don't draw grid lines when hidden
106-
if (size !== 0) {
106+
if (size !== 0 && x >= sheet.clamp.left) {
107107
const lines = gridOverflowLines.getColumnVerticalRange(column, range);
108108
if (lines) {
109109
for (const [y0, y1] of lines) {
@@ -147,7 +147,7 @@ export class GridLines extends Graphics {
147147
let size = 0;
148148
for (let y = bounds.top; y <= bounds.bottom + size - 1; y += size) {
149149
// don't draw grid lines when hidden
150-
if (size !== 0) {
150+
if (size !== 0 && y >= sheet.clamp.top) {
151151
const lines = gridOverflowLines.getRowHorizontalRange(row, [startX, endX]);
152152
if (lines) {
153153
for (const [x0, x1] of lines) {

quadratic-client/src/app/ui/QuadraticUI.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import { useFileContext } from '@/app/ui/components/FileProvider';
1616
import { PermissionOverlay } from '@/app/ui/components/PermissionOverlay';
1717
import { PresentationModeHint } from '@/app/ui/components/PresentationModeHint';
1818
import { AIAnalyst } from '@/app/ui/menus/AIAnalyst/AIAnalyst';
19+
import { AIAnalystConnectionSchema } from '@/app/ui/menus/AIAnalyst/AIAnalystConnectionSchema';
1920
import { BottomBar } from '@/app/ui/menus/BottomBar/BottomBar';
2021
import { CellTypeMenu } from '@/app/ui/menus/CellTypeMenu/CellTypeMenu';
2122
import { CodeEditor } from '@/app/ui/menus/CodeEditor/CodeEditor';
@@ -125,6 +126,7 @@ export default function QuadraticUI() {
125126
}}
126127
>
127128
{canEditFile && isAuthenticated && <AIAnalyst />}
129+
{canEditFile && isAuthenticated && <AIAnalystConnectionSchema />}
128130
<FileDragDropWrapper>
129131
<QuadraticGrid />
130132
{!presentationMode && <SheetBar />}

0 commit comments

Comments
 (0)