fix default workspace creation bug. fix no workspace message

This commit is contained in:
sawka 2023-11-01 23:41:04 -07:00
parent 055d00d78a
commit f2baa59af6
5 changed files with 31 additions and 9 deletions

View File

@ -14,6 +14,15 @@
border-radius: 8px;
transition: width 0.2s ease;
margin-bottom: 0.5em;
.center-message {
display: flex;
align-items: center;
justify-content: center;
height: 100%;
width: 100%;
color: @text-secondary;
}
}
.collapsed + .session-view {
max-width: calc(100% - 6.7em);

View File

@ -25,7 +25,11 @@ class WorkspaceView extends React.Component<{}, {}> {
let model = GlobalModel;
let session = model.getActiveSession();
if (session == null) {
return <div className="session-view">(no active session)</div>;
return (
<div className="session-view">
<div className="center-message"><div>(no active workspace)</div></div>
</div>
);
}
let activeScreen = session.getActiveScreen();
let cmdInputHeight = model.inputModel.cmdInputHeight.get();

View File

@ -825,7 +825,7 @@ func main() {
log.Printf("[error] ensuring local remote: %v\n", err)
return
}
_, err = sstore.EnsureDefaultSession(context.Background())
err = sstore.EnsureOneSession(context.Background())
if err != nil {
log.Printf("[error] ensuring default session: %v\n", err)
return

View File

@ -507,6 +507,15 @@ func GetSessionById(ctx context.Context, id string) (*SessionType, error) {
return nil, nil
}
// counts non-archived sessions
func GetSessionCount(ctx context.Context) (int, error) {
return WithTxRtn(ctx, func(tx *TxWrap) (int, error) {
query := `SELECT COALESCE(count(*), 0) FROM session WHERE NOT archived`
numSessions := tx.GetInt(query)
return numSessions, nil
})
}
func GetSessionByName(ctx context.Context, name string) (*SessionType, error) {
var session *SessionType
txErr := WithTx(ctx, func(tx *TxWrap) error {

View File

@ -1197,19 +1197,19 @@ func EnsureLocalRemote(ctx context.Context) error {
return nil
}
func EnsureDefaultSession(ctx context.Context) (*SessionType, error) {
session, err := GetSessionByName(ctx, DefaultSessionName)
func EnsureOneSession(ctx context.Context) error {
numSessions, err := GetSessionCount(ctx)
if err != nil {
return nil, err
return err
}
if session != nil {
return session, nil
if numSessions > 0 {
return nil
}
_, err = InsertSessionWithName(ctx, DefaultSessionName, true)
if err != nil {
return nil, err
return err
}
return GetSessionByName(ctx, DefaultSessionName)
return nil
}
func createClientData(tx *TxWrap) error {