Skip to content

Commit 2b300ed

Browse files
clubby789shepmaster
authored andcommitted
Indicate displayed code has been updated since gist was saved
1 parent b372558 commit 2b300ed

File tree

2 files changed

+10
-0
lines changed

2 files changed

+10
-0
lines changed

ui/frontend/Output/Gist.tsx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import { State } from '../reducers';
77
import * as selectors from '../selectors';
88

99
import Loader from './Loader';
10+
import Section from './Section';
1011

1112
import styles from './Gist.module.css';
1213

@@ -58,13 +59,17 @@ const Links: React.FC = () => {
5859
const gistUrl = useSelector((state: State) => state.output.gist.url);
5960
const permalink = useSelector(selectors.permalinkSelector);
6061
const urloUrl = useSelector(selectors.urloUrlSelector);
62+
const textChanged = useSelector(selectors.textChangedSinceShareSelector);
6163

6264
return (
6365
<Fragment>
6466
<Copied href={permalink}>Permalink to the playground</Copied>
6567
{ gistUrl ? <Copied href={gistUrl}>Direct link to the gist</Copied> : null }
6668
<Copied href={codeUrl}>Embedded code in link</Copied>
6769
<NewWindow href={urloUrl}>Open a new thread in the Rust user forum</NewWindow>
70+
{textChanged ? <Section kind="warning" label="Code changed">
71+
Source code has been changed since gist was saved
72+
</Section>: null }
6873
</Fragment>
6974
);
7075
};

ui/frontend/selectors/index.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,11 @@ export const permalinkSelector = createSelector(
205205
},
206206
);
207207

208+
export const textChangedSinceShareSelector = createSelector(
209+
codeSelector, gistSelector,
210+
(code, gist) => code !== gist.code
211+
)
212+
208213
const codeBlock = (code: string, language = '') =>
209214
'```' + language + `\n${code}\n` + '```';
210215

0 commit comments

Comments
 (0)