Skip to content

Commit 97b1800

Browse files
authored
Merge pull request #2131 from Rafail6666/feature/badwords
add lib bad-words-next, filter bad words for en and ru lang
2 parents 9e5cb67 + 8ac4835 commit 97b1800

2 files changed

Lines changed: 13 additions & 1 deletion

File tree

services/app/apps/codebattle/assets/js/widgets/components/ChatInput.jsx

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,11 @@ import useClickAway from '../utils/useClickAway';
1414
import EmojiPicker from './EmojiPicker';
1515
import EmojiToolTip from './EmojiTooltip';
1616

17+
import BadWordsNext from 'bad-words-next';
18+
import en from 'bad-words-next/lib/en';
19+
import ru from 'bad-words-next/lib/ru';
20+
import rl from 'bad-words-next/lib/ru_lat';
21+
1722
const MAX_MESSAGE_LENGTH = 1024;
1823

1924
const trimColons = message => message.slice(0, message.lastIndexOf(':'));
@@ -34,6 +39,11 @@ export default function ChatInput({ inputRef, disabled = false }) {
3439
const [text, setText] = useState('');
3540
const activeRoom = useSelector(selectors.activeRoomSelector);
3641

42+
const badwords = new BadWordsNext()
43+
badwords.add(en);
44+
badwords.add(ru);
45+
badwords.add(rl);
46+
3747
const isMessageBlank = !text.trim();
3848

3949
const handleChange = async ({ target: { value } }) => {
@@ -48,8 +58,9 @@ export default function ChatInput({ inputRef, disabled = false }) {
4858

4959
const handleSubmit = e => {
5060
e.preventDefault();
61+
const filteredText = badwords.filter(text);
5162
const message = {
52-
text,
63+
filteredText,
5364
meta: {
5465
type: activeRoom.targetUserId ? messageTypes.private : messageTypes.general,
5566
targetUserId: activeRoom.targetUserId,

services/app/apps/codebattle/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@
5959
"@xstate/react": "^3.2.2",
6060
"@xstate/test": "^1.0.0-alpha.1",
6161
"axios": "^1.6.0",
62+
"bad-words-next": "^3.1.1",
6263
"bootstrap": "^4.6.2",
6364
"calcite-react": "^0.56.2",
6465
"chart.js": "^4.4.3",

0 commit comments

Comments
 (0)