|
@@ -270,6 +270,7 @@ import {
|
|
|
updateStable,
|
|
|
addEventListener,
|
|
|
normalizeEOL,
|
|
|
+ getDateTime,
|
|
|
} from "../utils";
|
|
|
import {
|
|
|
createSrcDoc,
|
|
@@ -619,7 +620,7 @@ class App extends React.Component<AppProps, AppState> {
|
|
|
gridModeEnabled = false,
|
|
|
objectsSnapModeEnabled = false,
|
|
|
theme = defaultAppState.theme,
|
|
|
- name = defaultAppState.name,
|
|
|
+ name = `${t("labels.untitled")}-${getDateTime()}`,
|
|
|
} = props;
|
|
|
this.state = {
|
|
|
...defaultAppState,
|
|
@@ -662,6 +663,7 @@ class App extends React.Component<AppProps, AppState> {
|
|
|
getSceneElements: this.getSceneElements,
|
|
|
getAppState: () => this.state,
|
|
|
getFiles: () => this.files,
|
|
|
+ getName: this.getName,
|
|
|
registerAction: (action: Action) => {
|
|
|
this.actionManager.registerAction(action);
|
|
|
},
|
|
@@ -1734,7 +1736,7 @@ class App extends React.Component<AppProps, AppState> {
|
|
|
this.files,
|
|
|
{
|
|
|
exportBackground: this.state.exportBackground,
|
|
|
- name: this.state.name,
|
|
|
+ name: this.getName(),
|
|
|
viewBackgroundColor: this.state.viewBackgroundColor,
|
|
|
exportingFrame: opts.exportingFrame,
|
|
|
},
|
|
@@ -2133,7 +2135,7 @@ class App extends React.Component<AppProps, AppState> {
|
|
|
let gridSize = actionResult?.appState?.gridSize || null;
|
|
|
const theme =
|
|
|
actionResult?.appState?.theme || this.props.theme || THEME.LIGHT;
|
|
|
- let name = actionResult?.appState?.name ?? this.state.name;
|
|
|
+ const name = actionResult?.appState?.name ?? this.state.name;
|
|
|
const errorMessage =
|
|
|
actionResult?.appState?.errorMessage ?? this.state.errorMessage;
|
|
|
if (typeof this.props.viewModeEnabled !== "undefined") {
|
|
@@ -2148,10 +2150,6 @@ class App extends React.Component<AppProps, AppState> {
|
|
|
gridSize = this.props.gridModeEnabled ? GRID_SIZE : null;
|
|
|
}
|
|
|
|
|
|
- if (typeof this.props.name !== "undefined") {
|
|
|
- name = this.props.name;
|
|
|
- }
|
|
|
-
|
|
|
editingElement =
|
|
|
editingElement || actionResult.appState?.editingElement || null;
|
|
|
|
|
@@ -2709,12 +2707,6 @@ class App extends React.Component<AppProps, AppState> {
|
|
|
});
|
|
|
}
|
|
|
|
|
|
- if (this.props.name && prevProps.name !== this.props.name) {
|
|
|
- this.setState({
|
|
|
- name: this.props.name,
|
|
|
- });
|
|
|
- }
|
|
|
-
|
|
|
this.excalidrawContainerRef.current?.classList.toggle(
|
|
|
"theme--dark",
|
|
|
this.state.theme === "dark",
|
|
@@ -4122,6 +4114,14 @@ class App extends React.Component<AppProps, AppState> {
|
|
|
return gesture.pointers.size >= 2;
|
|
|
};
|
|
|
|
|
|
+ public getName = () => {
|
|
|
+ return (
|
|
|
+ this.state.name ||
|
|
|
+ this.props.name ||
|
|
|
+ `${t("labels.untitled")}-${getDateTime()}`
|
|
|
+ );
|
|
|
+ };
|
|
|
+
|
|
|
// fires only on Safari
|
|
|
private onGestureStart = withBatchedUpdates((event: GestureEvent) => {
|
|
|
event.preventDefault();
|