TextReplacerHelper extension

on

Methods

replace([Map<String, Object?> args = const {}]) String

Available on String, provided by the TextReplacerHelper extension

final inp = '{IS_LOADING ? "Loading..." : "{COUNT > 1 ? "COUNT items" : "{COUNT == 1 ? "One item" : "No items"}"}"}'; TextReplacer.replace(inp, {'COUNT': 1, 'IS_LOADING': true}); // Loading... TextReplacer.replace(inp, {'COUNT': 0, 'IS_LOADING': false}); // No items TextReplacer.replace(inp, {'COUNT': 1, 'IS_LOADING': false}); // One item TextReplacer.replace(inp, {'COUNT': 2, 'IS_LOADING': false}); // 2 items final inp1 = "There {NUMBER > 1 ? \"are NUMBER items\" : \"is an item\"} in stock"; inp1.replace({'NUMBER': 1}); // There is an item in stock inp1.replace({'NUMBER': 2}); // There are 2 items in stock final inp2 = "Status: {STATUS == active ? \"activated!\" : \"canceled!\"}"; inp2.replace({'STATUS': "active"}); // Status: activated! inp2.replace({'STATUS': "inactive"}); // Status: canceled! final inp3 = "Status: {IS_ACTIVATED ? \"activated!\" : \"inactivated!\"}"; inp3.replace({'IS_ACTIVATED': true}); // Status: activated! inp3.replace({'IS_ACTIVATED': false}); // Status: inactivated! final inp4 = "Last seen: {TIME: {a:now, b:3 min ago}}"; inp4.replace({"TIME": "a"}); // Last seen: now inp4.replace({"TIME": "b"}); // Last seen: 3 min ago